Why is StartCoroutine is the Best Overloaded For

can someone help me because dont know why StartCoroutine is overloaded when I saw on youtube he cant get overloaded I check many times on youtube my code is the same to him please this very important

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class LoadingSceneScript : MonoBehaviour {

	public LoadingBarScript LoadingBar;
	private AsyncOperation AsyncLoad;

	public string SceneToLoad;

	// Use this for initialization
	void Start () {

		LoadingBar.OnChange (this.OnLoadingBarChange);
		LoadingBar.OnDone (this.OnLoadingBarDone);
		StartCoroutine (this.LoadAsyncScene ());
	// Update is called once per frame
	void Update () {

	void OnLoadingBarChange(float value)
		print ("Progress is : " + value);

	void OnLoadingBarDone()
		print ("Progress is Done!");
		AsyncLoad.allowSceneActivation = true;

	IEnumerable LoadAsyncScene()
		AsyncLoad = SceneManager.LoadSceneAsync (this.SceneToLoad);
		AsyncLoad.allowSceneActivation = false;

		while (!AsyncLoad.isDone) {

			LoadingBar.SetValue (Mathf.Clamp01 (AsyncLoad.progress / 0.9f));
			yield return null;

You don’t know C# do you? study it first, then make games
the problem is that the StartCourotine takes in a IEnumator method, and you’re passing a IEnumerable, all you have to do is to change this line:

IEnumerable LoadAsyncScene()


IEnumerator LoadAsyncScene()

p.s.: your variables are capitalized, you don’t want that, variables usually start with lower case letters
p.p.s.: you don’t need to use the keyword “this” everywere
p.p.p.s.: watch the tutorials that Unity themselves made, and watch some lessons on C# programming