I'm using Visual Studio 2013 to write C# code.
How should I name my classes? In a "English-friendly" way, or in a way thats more IntelliSense- friendly.
For instance, I have a interface called
IColorComparer. And a few classes that implement that interface:
QuadraticColorComparer vs ColorComparerQuadratic DefaultColorComparer vs ColorComparerDefault
TrauerColorComparer vs ColorComparerTrauer
Question: Is there a official naming convention for Classes in C# / VS? Does it take tools like IntelliSense into account?

It usually makes sense to put the differentiator at the start. For example:
TextReader / StreamReader / StringReaderStream / FileStream / MemoryStream / NetworkStreamIt's like having an adjective to provide more detail: "the red book, the blue book".
One alternative option is to avoid exposing the classes themselves, and instead have:
public static class ColorComparers
{
public static IColorComparer Quadratic { get { ... } }
public static IColorComparer Default { get { ... } }
public static IColorComparer Trauer { get { ... } }
}
Then you'd just use it as:
IColorComparer comparer = ColorComparers.Quadratic;
Does anything else really need the implementation details? The implementations could even be private nested classes within ColorComparers.
See more on this question at Stackoverflow