当我尝试编译C#程序时出现以下错误:
The type or namespace name 'Login' could not be found (are you missing a using directive or an assembly reference?)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FootballLeague
{
public partial class MainMenu : Form
{
FootballLeagueDatabase footballLeagueDatabase;
Game game;
Team team;
Login login; //Error here
public MainMenu()
{
InitializeComponent();
changePanel(1);
}
public MainMenu(FootballLeagueDatabase footballLeagueDatabaseIn)
{
InitializeComponent();
footballLeagueDatabase = footballLeagueDatabaseIn;
}
private void Form_Loaded(object sender, EventArgs e)
{
}
private void gameButton_Click(object sender, EventArgs e)
{
int option = 0;
changePanel(option);
}
private void scoreboardButton_Click(object sender, EventArgs e)
{
int option = 1;
changePanel(option);
}
private void changePanel(int optionIn)
{
gamePanel.Hide();
scoreboardPanel.Hide();
string title = "Football League System";
switch (optionIn)
{
case 0:
gamePanel.Show();
this.Text = title + " - Game Menu";
break;
case 1:
scoreboardPanel.Show();
this.Text = title + " - Display Menu";
break;
}
}
private void logoutButton_Click(object sender, EventArgs e)
{
login = new Login();
login.Show();
this.Hide();
}
Login.cs
class:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FootballLeagueSystem
{
public partial class Login : Form
{
MainMenu menu;
public Login()
{
InitializeComponent();
}
private void administratorLoginButton_Click(object sender, EventArgs e)
{
string username1 = "08247739";
string password1 = "08247739";
if ((userNameTxt.Text.Length) == 0)
MessageBox.Show("Please enter your username!");
else if ((passwordTxt.Text.Length) == 0)
MessageBox.Show("Please enter your password!");
else if (userNameTxt.Text.Equals("") || passwordTxt.Text.Equals(""))
MessageBox.Show("Invalid Username or Password!");
else
{
if (this.userNameTxt.Text == username1 && this.passwordTxt.Text == password1)
MessageBox.Show("Welcome Administrator!", "Administrator Login");
menu = new MainMenu();
menu.Show();
this.Hide();
}
}
private void managerLoginButton_Click(object sender, EventArgs e)
{
{
string username2 = "1111";
string password2 = "1111";
if ((userNameTxt.Text.Length) == 0)
MessageBox.Show("Please enter your username!");
else if ((passwordTxt.Text.Length) == 0)
MessageBox.Show("Please enter your password!");
else if (userNameTxt.Text.Equals("") && passwordTxt.Text.Equals(""))
MessageBox.Show("Invalid Username or Password!");
else
{
if (this.userNameTxt.Text == username2 && this.passwordTxt.Text == password2)
MessageBox.Show("Welcome Manager!", "Manager Login");
menu = new MainMenu();
menu.Show();
this.Hide();
}
}
}
private void cancelButton_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
错误在哪里?我做错了什么?
答案 0 :(得分:31)
当我的项目.net框架版本与我链接的DLL的框架版本不匹配时,我收到此错误。就我而言,我得到了:
“无法找到类型或命名空间名称'UserVoice'(您是否缺少using指令或程序集引用?)。
UserVoice是.Net 4.0,我的项目属性设置为“.Net 4.0 Client Profile”。在项目上更改为.Net 4.0可以清除错误。我希望这有助于某人。
答案 1 :(得分:18)
您没有Login类所在的命名空间作为参考。
将以下内容添加到使用Login
类的表单:
using FootballLeagueSystem;
当你想在另一个namespace中使用一个类时,你必须告诉编译器在哪里找到它。在这种情况下,Login
位于FootballLeagueSystem
命名空间内,或者:FootballLeagueSystem.Login
是完全限定的命名空间。
正如评论者指出的那样,您在FootballLeagueSystem
命名空间内声明了Login类,但是您在FootballLeague
命名空间中使用它。
答案 2 :(得分:4)
您需要添加以下行:
using FootballLeagueSystem;
进入使用Login
的所有类(MainMenu.cs,programme.cs等)。
目前编译器找不到Login
类。
答案 3 :(得分:0)
如果您在项目中的单独文件夹中登录,请确保您使用它的位置:
using FootballLeagueSystem.[Whatever folder you are using]
答案 4 :(得分:0)
这个错误来了,因为编译不知道在哪里找到类..所以它主要发生在你复制或导入项目时..解决这个问题.. 1.将formname.cs和formname.designer.cs中的命名空间更改为项目名称。