找不到类型或命名空间(您是否缺少using指令或程序集引用?)

时间:2010-04-27 13:01:07

标签: c# .net using-directives

当我尝试编译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();
    }

    }
}

错误在哪里?我做错了什么?

5 个答案:

答案 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中的命名空间更改为项目名称。