Each time a new project is started, there is always a discussion (or there should be!) of what guidelines should be used in design, naming conventions, etc.
I typically like to defer to the standards given by the company that creates the language, and then define any differences. For the case of C# and .NET languages, this means WWMD (What Would Microsoft Do).
Here is a link to the Design Guidelines for Developing Class Libraries from msdn:
Subsections of this main topic are:
- Guidelines for Names
- Type Design Guidelines
- Member Design Guidelines
- Designing for Extensibility
- Design Guidelines for Exceptions
- Usage Guidelines
This is a pretty good specification, even getting down to capitalization schemes. And between this and Code Complete, I have found that almost all questions that come up can be addressed.