继续获取错误消息不包含适合入口点的静态main方法。有人能够向我解释这个错误,并可能帮我修复它吗?谢谢。 C#的新手
{
class Authenticator
{
private Dictionary<string, string> dictionary = new Dictionary<string, string>();
public void IntialValues()
{
dictionary.Add("username1", "password1");
dictionary.Add("username2", "password2");
dictionary.Add("username3", "password3");
dictionary.Add("username4", "password4");
dictionary.Add("username5", "password5");
}
public bool Authenticate(Boolean authenticated)
{
Console.WriteLine("Please enter a username");
string inputUsername = Console.ReadLine();
Console.WriteLine("Please enter your password");
string inputPassword = Console.ReadLine();
if (dictionary.ContainsKey(inputUsername) && dictionary[inputUsername] == inputPassword)
{
authenticated = true;
}
else
{
authenticated = false;
}
return authenticated;
}
}
}
答案 0 :(得分:0)
所有可执行程序必须在项目中的某个位置编译为exe。
如果你只想编译一个类(例如编译成dll),那么你必须将它设置为visual studio中的“项目类型”。
最简单的方法是创建一个新项目,但选择类库作为项目类型,然后将代码粘贴到那里。或者,您可以使用命令行将文件编译为dll,如下所示:
c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /target:library Authenticator.cs
答案 1 :(得分:0)
如果您的所有代码仅包含上面显示的块,则错误不仅仅是清除。您的程序需要Main方法。
按照惯例,Main方法是代码开始执行的默认点。你可以到这里more in depth explanation
因此,例如,您需要添加以下代码
class Authenticator
{
static void Main(string[] args)
{
Authenticator au = new Authenticator();
au.InitialValues();
if(au.Authenticate())
Console.WriteLine("Authenticated");
else
Console.WriteLine("NOT Authenticated");
Console.WriteLine("Press Enter to end");
Console.ReadLine();
}
// Move the boolen variable inside the method
public bool Authenticate()
{
bool authenticated = false;
Console.WriteLine("Please enter a username");
string inputUsername = Console.ReadLine();
Console.WriteLine("Please enter your password");
string inputPassword = Console.ReadLine();
if (dictionary.ContainsKey(inputUsername) && dictionary[inputUsername] == inputPassword)
{
authenticated = true;
}
else
{
authenticated = false;
}
return authenticated;
}
}
顺便说一句,您应该删除在Authenticate方法输入中传递的参数。您应该将其声明为内部变量,根据检查结果进行设置并将其返回。
但是,您可以完全删除该变量
....
return (dictionary.ContainsKey(inputUsername)) &&
(dictionary[inputUsername] == inputPassword)
}