1. The best format for namespace in <Company>.<Component>
2. Consider whether you need to set namespace to a complex number, such as System.Collections in the FCL
3. Avoid naming your own type with the type name of the FCL
4. Class names are best used in nouns
5. Interface names preferably with adjectives
6. The name of the derived class is suffixed with the base class name
7. Generic type parameters are prefixed with T
8. Enumeration type name should be plural
9. Properties, fields, and methods that are open to the caller should be named Pascal
10.bool attributes are generally named for affirmative phrases, such as isenabled
11. Delegate or event naming should be added: Delegate,callback,eventhandler and other descriptions
12. Variables of a delegate or event type use verbs or adjectives
13. A way to do only one thing
14. Avoid too long classes, or methods
15. Don't be public.
16. Refactoring multiple properties to a class
17. Do not have duplicate code
18. Ways to use lambda instead of short content
19. Add comments to custom throw exceptions
20. Do not over-design, agile
21. Focus on Unit Testing
Some suggestions on C # naming specification