Тип или пространство имен не могут быть найдены (вам не хватает директивы using или ссылки на сборку?)
Я получаю следующую ошибку при попытке скомпилировать свою программу на С#:
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();
}
}
}
Где ошибка? Что я делаю неправильно?
Ответы
Ответ 1
У вас нет пространства имен, в котором класс Login находится в качестве ссылки.
Добавьте следующую форму в форму, использующую класс Login
:
using FootballLeagueSystem;
Если вы хотите использовать класс в другом namespace, вы должны сообщить компилятору, где его найти. В этом случае Login
находится внутри пространства имен FootballLeagueSystem
или: FootballLeagueSystem.Login
- это полное пространство имен.
Как отметил комментатор, вы объявляете класс Login внутри пространства имен FootballLeagueSystem
, но используете его в пространстве имен FootballLeague
.
Ответ 2
Я получаю эту ошибку, когда моя версия проекта .net framework не соответствует версии фреймворка DLL, к которому я привязываюсь. В моем случае я получал:
"Тип или имя пространства имен 'UserVoice' не удалось найти (вам не хватает директивы using или ссылки на сборку?).
UserVoice был .Net 4.0, а мои свойства проекта были настроены на ".Net Client Client". Изменение на .Net 4.0 в проекте очистило ошибку. Надеюсь, это поможет кому-то.
Ответ 3
Вам нужно добавить следующую строку:
using FootballLeagueSystem;
в ваши все классы (MainMenu.cs, programme.cs и т.д.), которые используют Login
.
В настоящий момент компилятор не может найти класс Login
.
Ответ 4
Если у вас есть вход в отдельную папку в вашем проекте, убедитесь, что там, где вы его используете:
using FootballLeagueSystem.[Whatever folder you are using]
Ответ 5
Эта ошибка возникает из-за того, что компилятор не знает, где найти класс. Так происходит в основном при копировании или импорте товара. Чтобы решить эту проблему.
1. замените пространство имен в formname.cs и formname.designer.cs на имя вашего проекта.