Не удается найти тип или пространство имен (вам не хватает директивы using или ссылки на сборку?) - PullRequest
16 голосов
/ 27 апреля 2010

Я получаю следующую ошибку при попытке скомпилировать свою программу на 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 класс:

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 ]

31 голосов
/ 21 декабря 2013

Я получаю эту ошибку, когда версия фреймворка .net моего проекта не совпадает с версией фреймворка библиотеки DLL, на которую я ссылаюсь. В моем случае я получал:

"Не удалось найти тип или имя пространства имен 'UserVoice' (отсутствует директива using или ссылка на сборку?).

UserVoice был .Net 4.0, а мои свойства проекта были установлены на «.Net 4.0 Client Profile». Переход на .Net 4.0 на проекте очистил ошибку. Надеюсь, это кому-нибудь поможет.

18 голосов
/ 27 апреля 2010

У вас нет пространства имен, к которому относится класс Login,

Добавьте в форму, использующую класс Login, следующее:

using FootballLeagueSystem;

Если вы хотите использовать класс в другом пространстве имен , вы должны указать компилятору, где его найти. В этом случае Login находится внутри пространства имен FootballLeagueSystem, или: FootballLeagueSystem.Login является полностью определенным пространством имен .

Как отметил комментатор, вы объявляете класс Login внутри пространства имен FootballLeagueSystem, но используете его в пространстве имен FootballLeague.

4 голосов
/ 27 апреля 2010

Вам необходимо добавить следующую строку:

using FootballLeagueSystem;

во все ваши классы (MainMenu.cs, programme.cs и т. Д.), Которые используют Login.

В данный момент компилятор не может найти класс Login.

0 голосов
/ 28 июня 2017

Эта ошибка возникает из-за того, что компиляция не знает, где найти класс .. так что это происходит в основном, когда вы копируете или импортируете элемент .. чтобы решить эту проблему .. 1. измените пространство имен в formname.cs и formname.designer.cs на имя вашего проекта.

0 голосов
/ 27 июля 2012

Если у вас есть Логин в отдельной папке в вашем проекте, убедитесь, что вы используете его:

using FootballLeagueSystem.[Whatever folder you are using]

...