Compiler Error CS0116
A namespace does not directly contain members such as fields or methods
Inside a namespace, the compiler only accepts classes, structures, unions, enumerations, interfaces, and delegates. This error is often generated by developers from a C/C++ background who forget that in C#, methods and variables must be declared and defined within a struct or class. For more information, see General Structure of a C# Program (C# Programming Guide).
Example
The following sample generates CS0116:
// CS0116.cs
namespace x
{
using System;
// method must be in class/struct
void Method(string str) // CS0116
{
Console.WriteLine(str);
}
// To fix the error, you must
// enclose a method in a class:
class Program
{
void Method2(string str)
{
Console.WriteLine(str);
}
}
}
See Also
Reference
General Structure of a C# Program (C# Programming Guide)
Classes and Structs (C# Programming Guide)
Namespaces (C# Programming Guide)
Change History
Date |
History |
Reason |
---|---|---|
October 2008 |
Added text and code comments. |
Customer feedback. |