Creating classes within classes
I know that the MS rules say this is not a good idea. However, I disagree, for example if a method takes a parameter which is an object, and this is not for an API., it is ok to create a class within a class when this class is meant to be used to pass stuff to this particular class only. Better than putting it out in the open namespace, when it is tightly bound to this class only. Sometimes, this is useful for an Enum also. Because then you can have enums with the same name, but within different classes. This often happens when writing code.