2016-01-02 66 views
-1

所以我有这个叫Employee的类来存储员工的用户名和密码。如何从另一个窗体访问对象c#

class Employee 
{ 
    string username; 
    string password; 

    public string Username 
    { 
     get { return username; } 
     set { username = value; } 
    } 

    public string Password 
    { 
     get { return password; } 
     set { password = value; } 
    } 

    public Employee(string username, string password) 
    { 
     this.username = username; 
     this.password = password; 
    } 

在我的主类中,我创建了一个带有一些示例数据的Employee实例。

Employee employee1 = new Employee("John", "123"); 

我在主要方法中包含了这段代码,根据用户名和密码对用户进行身份验证。

do 
     { 
      Console.Write("Username: "); 
      username = Console.ReadLine(); 
      Console.Write("Password: "); 
      password = Console.ReadLine(); 

      if (employee1.Username != username || employee1.Password != password) 
      { 
       Console.WriteLine("Incorrect Username or Password. Please Try again \n"); 
      } 
     } 
     while (employee1.Username != username || employee1.Password != password); 

     Console.Clear(); 
     Console.Write("Login Sucessful!. Press any key to continue..."); 
     Console.ReadKey(); 

而是在我的主类有这个代码块的,我想转让在Employee.cs这个代码,作为一种方法,并且可以从主类中调用。我的问题是,我如何从主类访问对象,并获得初始化的用户名和密码以在Employee.cs上应用相同的概念。

回答

2

你的意思是这样的:

class Employee 
{ 
    // Existing code above this 

    public bool Authenticate() 
    { 
     var authed = false; 
     do 
     { 
      Console.Write("Username: "); 
      var attemptUsername = Console.ReadLine(); 
      Console.Write("Password: "); 
      var attemptPassword = Console.ReadLine(); 

      if (username != attemptUsername || password != attemptPassword) 
      { 
       Console.WriteLine("Incorrect Username or Password. Please Try again \n"); 
      } 
      else 
      { 
       authed = true; 
      } 
     } 
     while (!authed); 

     Console.Clear(); 
     Console.Write("Login Sucessful!. Press any key to continue..."); 
     Console.ReadKey(); 

     return authed; 
    } 
} 

然后你可以去:

var john = new Employee("John", 123); 
john.Authenticate(); // Waits until he enters valid password (Might want to add a max attempts to the Authenticate function and actually use the return value 

注:根据什么框架等你正在使用,它通常是一个好主意,让您的Employee/Veternerian类作为POCO并使用服务来添加基于它们的逻辑。

2

这是你要找吗?

class Mainclass 
    { 
     Main() 
     { 
      Employee employee1 = new Employee("John", "123"); 
      employee1.yourMethod(); 
     } 

    } 


    public class Employee 
     { 
      string username; 
      string password; 
     . 
     . 
     . 
     public void yourMethod() 
     { 
       do 
       { 
        Console.Write("Username: "); 
        username = Console.ReadLine(); 
        Console.Write("Password: "); 
        password = Console.ReadLine(); 

        if (veterinarian1.Username != username || veterinarian1.Password != password) 
        { 
         Console.WriteLine("Incorrect Username or Password. Please Try again \n"); 
        } 
       } 
       while (veterinarian1.Username != username || veterinarian1.Password != password); 

       Console.Clear(); 
       Console.Write("Login Sucessful!. Press any key to continue..."); 
       Console.ReadKey(); 
     } 

     } 
+0

是的,但我无法通过Employee.cs中的该方法访问employee1。 –

+0

好吧,只需在您的员工声明'公共班级员工'之前添加公开' –

+0

如果您的问题解决了标记答案 –