2013-04-30 30 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

相關問題