Coroutines with parenthesis vs quotes

what is the difference between

StartCoroutine(Fade());

and

StartCoroutine("Fade");

If only the one started with quotes is able to be stopped when would the first example be used/ better?
Edit: Okay after some experimenting it seems the parenthesis version Coroutine can only take 1 argument as a limitation. Edit: Oops switched those by accident, like Eric says it’s really the string version with the 1 arguement limitation.

No, the string version can only take one parameter; the normal version has no such limitation. You should only use the string version if you intend to use StopCoroutine. As a rule, if there is a non-string version of anything, that’s the version to use unless there’s some specific functionality that the string version offers that you need and can’t get with the non-string version. Not using strings is faster and less prone to bugs, since if you make a mistake you get instant feedback (in the form of not being able to compile the script until you fix it).

–Eric