One class per file rule in .NET?

.net, c#

Solution

One class per file also gives you a better idea of what each check in is changing without looking at the diffs of the file.

Problem

I follow this rule but some of my colleagues disagree with it and argue that if a class is smaller it can be left in the same file with other class(es). Another argument I hear all the time is "Even Microsoft doesn't do this, so why should we?" What's the general consensus on this? Are there cases where this should be avoided?

Original source

Related problems