error CS0029: Cannot implicitly convert type `float' to `UnityEngine.Color'

Cannot access alpha channel to make stuff fade in and out…

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Crossfade : MonoBehaviour {

	public bool IsText;
	public bool IsImage;
	public float FadeTime;
	public float FadoutTime;
	// Use this for initialization
	void Start () {
		if (IsText == true) {
			this.gameObject.GetComponent<Text> ().color = Color.a = 0;
		}

		if (IsImage == true) {
			this.gameObject.GetComponent<Image> ().color = Color.a = 0;
		}

	}



	// Update is called once per frame
	void Update () {
		FadeTime += 1 * Time.deltaTime;

		if (IsText == true) {
			this.gameObject.GetComponent<Text> ().color = Color.a += 0.1f * Time.deltaTime;
			if(FadeTime == FadoutTime ){
				this.gameObject.GetComponent<Text> ().color = Color.a -= 0.1f * Time.deltaTime;
			}
		}

		if (IsImage == true) {
			this.gameObject.GetComponent<Text> ().color = Color.a -= 0.1f * Time.deltaTime;
		}




	}
}

Looks like you need an actual color object, so something like this:

Color startColor;
Color fadeColor;

void Start()
{
      startColor = gameObject.GetComponent<Text> ().color;
      fadeColor = startColor;
      fadeColor.a = 0f;      
}

Also, you should take a look at using Color.Lerp.

For Anyone wondering:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Crossfade : MonoBehaviour {

Color startColor;
Color fadeColor;
private float Timerr =0; 
public float SloidTime;
public float fadespeed;

void Start()
{
	startColor = this.gameObject.GetComponent<Text> ().color;
	fadeColor = startColor;
	fadeColor.a = 0f;      
}

void LateUpdate(){

	this.gameObject.GetComponent<Text> ().color = fadeColor;
	fadeColor.a += 0.1f * Time.deltaTime * fadespeed;
	if(fadeColor.a == 1){
		Timerr += 1 * Time.deltaTime;
	}

	if (Timerr == SloidTime) {
		fadeColor.a -= 0.1f * Time.deltaTime * fadespeed;
	}

}

}