2013-04-30 60 views
0

我有一个包含以下方法的类(类名是ZipLoad):如何在处理具有多个参数的方法时在类属性中使用多个集合?

private string DOit(string uName, string pWord) 
    { 
     DOSTUFF..... 
     return "Successfull"; 
    } 

现在我想通过使用我的程序参数的类,但有两个参数。如果有一个参数,我会简单地这样做:

private string testUser; 
    public string getSetUser 
    { 
     get { return testUser; } 
     set { testUser= DOit(value); } 
    } 

然后使用我的Windows窗体应用程序来传递参数。

 ZipLoad myZipLoad = new ZipLoad(); 

    string report; 
    myZipLoad.testUser = "userName"; 
    report= myZipLoad.getSetUser; 

我的问题是,如何使用类中的公共属性将参数传递给DOit方法。一种方法是使该方法公开,但由于某种原因,人们认为这种方法很糟糕。

任何帮助,将不胜感激...... 谢谢

+2

方法是外部世界的接口。你不会因为使它变得私人而受益匪浅。类的状态(成员字段)应该是私有的,而不是你的方法。 – 2013-04-30 06:21:21

回答

1

也许我错了,但set { testUser= DOit(value); }并不看起来非常有用的你想什么,因为如果你得到这个工作,你正在做的

myZipLoad.testUser = "userName"; 
report= myZipLoad.getSetUser; 
string user = myZipLoad.testUser; //<- user == "Successfull" 

,所以我建你这个结构

class Program 
    { 
     static void Main(string[] args) 
     { 
      ZipLoad myZipLoad = new ZipLoad(); 

      string report; 
      myZipLoad.TestUser = "userName"; 
      report = myZipLoad.Stat; //<- modified 
     } 
    } 


    class ZipLoad 
    { 
     #region private Values 

     private string testUser; 
     private string pWord; 

     #endregion 

     #region Properties 

     public string TestUser 
     { 
      get { return testUser; } 
      set { testUser = value; } 
     } 

     public string PWord 
     { 
      private get { return pWord; } 
      set { pWord = value; } 
     } 

// ADDED 
     public string Stat 
     { 
      get { return DOit_aka_Login(testUser, pWord); } 
     } 

     #endregion 

     private string DOit_aka_Login(string uName, string pWord) //<- modified 
     { 
      // now you may need to check the input if(uName =="" && pWord==""){...} 
      //DOSTUFF..... 
      return "Successfull"; 
     } 
    } 

,如果它不适合您的需求,请添加更多信息的

+0

是否有任何方法不需要公开“DOit_aka_Login()”方法? 我的意思是为什么使用属性呢? 为什么我们不直接将参数传递给Doit_aka_Login()方法? – 2013-04-30 07:13:07

+0

@WaqasAli看到我编辑的答案:-) – WiiMaxx 2013-04-30 07:22:21

+0

是的,它做到了...... 所以现在我不需要{}与其他两个属性。 – 2013-04-30 07:26:37

相关问题