Why does the code block below give a compile error of "does not contain a static 'Main'开发者_运维技巧 method suitable for an entry point"?
namespace MyConApp
{
class Program
{
static void Main(string args)
{
string tmpString;
tmpString = args;
Console.WriteLine("Hello" + tmpString);
}
}
}
In the code you provide the problem is that the 'Main' entry point is expecting a array of strings passed from system when the program is invoked (this array can be null, has no elements)
to correct change
static void Main(string args)
to
static void Main(string[] args)
You could get the same error if you declared your 'Main' of any type other than 'void' or 'int'
so the signature of the 'Main' method has always to be
static // ie not dynamic, reference to method must exist
public // ie be accessible from the framework invoker
Main // is the name that the framework invoker will call
string[] <aName> // can be ommited discarding CLI parameters
* is the command line parameters space break(ed)
From MS (...) The Main method can use arguments, in which case, it takes one of the following forms:
static int Main(string[] args)
static void Main(string[] args)
Because the argument is String and not a String Array as expected
See this to understand Main
method signature options.
The only valid signatures for Main
method are :
static void Main()
and
static void Main(string[])
static void Main(string)
is not a valid signature for Main
method.
The signature of the main method must be main(String[])
, not main(String)
.
精彩评论