web-dev-qa-db-fra.com

Le type ou l'espace de noms est introuvable (il vous manque une directive en utilisant une référence Assembly?)

Je reçois le message d'erreur suivant lorsque j'essaie de compiler mon programme 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 classe:

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();
    }

    }
}

Où est l'erreur? Qu'est-ce que je fais mal?

16
Leo

Vous n'avez pas l'espace de noms dans lequel se trouve la classe Login.

Ajoutez ce qui suit au formulaire qui utilise la classe Login:

using FootballLeagueSystem;

Lorsque vous souhaitez utiliser une classe dans un autre namespace , vous devez indiquer au compilateur où le trouver. Dans ce cas, Login est à l'intérieur de l'espace de noms FootballLeagueSystem, ou: FootballLeagueSystem.Login est l'espace de noms pleinement qualifié.

Comme un intervenant l'a fait remarquer, vous déclarez la classe Login à l'intérieur de l'espace de noms FootballLeagueSystem, mais vous l'utilisez dans l'espace de noms FootballLeague.

18
George Stocker

Je reçois cette erreur lorsque la version du framework .net de mon projet ne correspond pas à la version du framework de la DLL à laquelle je lie. Dans mon cas, je devenais:

"Le type ou le nom de l'espace de noms 'UserVoice' est introuvable (il vous manque une directive using ou une référence Assembly?).

UserVoice était .Net 4.0 et les propriétés de mon projet étaient définies sur "Profil client .Net 4.0". Passer à .Net 4.0 sur le projet a effacé l'erreur. J'espère que ça aidera quelqu'un.

30
Parrhesia Joe

Vous devez ajouter la ligne suivante:

using FootballLeagueSystem;

dans toutes vos classes (MainMenu.cs, programme.cs, etc.) qui utilisent Login.

Pour le moment, le compilateur ne trouve pas la classe Login.

4
ChrisF

Cette erreur survient parce que compile ne sait pas où trouver la classe..il se produit principalement lorsque vous copiez ou importez un élément ..pour résoudre ce problème .. cs au nom de votre projet.

0

Si vous avez connecté dans un dossier distinct au sein de votre projet, assurez-vous que, là où vous l'utilisez, vous faites: 

using FootballLeagueSystem.[Whatever folder you are using]

0
Tommy