2012-12-13 168 views
-3

我有一個問題,因爲我是C++的編碼器,現在我需要閱讀一些c#代碼。這是一個命名空間中的類,我不明白是最後一個成員;C#代碼無法理解

public string FilePath 
{ 
      get { return this.filePath; } 
      set { this.filePath = value; } 
} 

我不知道它是一個成員變量還是成員函數。

如果把它看作是一個成員函數,它應該像

public string FilePath(***) 
{ 
****; 
} 

但在這裏它不具有()類似的參數,什麼類型的功能是什麼呢?

class INIFileOperation 
    { 
    private string filePath; 

    [DllImport("kernel32")] 
    private static extern long WritePrivateProfileString(string section, 
    string key, 
    string val, 
    string filePath); 

    [DllImport("kernel32")] 
    private static extern int GetPrivateProfileString(string section, 
    string key, 
    string def, 
    StringBuilder retVal, 
    int size, 
    string filePath); 

    public string ReadAppPath() 
    { 
     string appPath = Path.GetDirectoryName(Application.ExecutablePath); 

     return appPath + "\\Setting.ini"; 
    } 

    public INIFileOperation() 
    { 
     this.filePath = ReadAppPath(); 
    } 

    public void Write(string section, string key, string value) 
    { 
     WritePrivateProfileString(section, key, value.ToUpper(), this.filePath); 
    } 
    public string Read(string section, string key) 
    { 
     StringBuilder SB = new StringBuilder(255); 
     int i = GetPrivateProfileString(section, key, "", SB, 255, this.filePath); 
     return SB.ToString(); 
    } 
    public string FilePath 
    { 
     get { return this.filePath; } 
     set { this.filePath = value; } 
    } 
} 
+0

這可能是供將來參考有用:[C#爲C++程序員](http://msdn.microsoft.com/en-us/library/yyaad03b%28v=vs.80%29。aspx) –

回答

1

您可以查看

public string FilePath 
     { 
      get { return this.filePath; } 
      set { this.filePath = value; } 
     } 

作爲一種書寫

public string GetFilePath() { return this.filePath; } 
public string SetFilePath(string value_) { this.filePath = value_; } 

的,但它給你所謂的property文件路徑可以用來作爲obj.FilePath="abc"string abc = obj.FilePath

5

這不是方法,但這是c#允許定義類的屬性的方式。

MSDN屬性是提供讀取,寫入或計算專用字段值的靈活機制的成員。屬性可以像使用公共數據成員一樣使用,但它們實際上是稱爲訪問器的特殊方法。這使數據能夠被輕鬆訪問,並且仍然有助於提高方法的安全性和靈活性。

  • 屬性使類揭露獲取和 設置值,同時隱藏實現或驗證代碼的公開方式。
  • 獲取屬性訪問器用於返回屬性值,並使用 集訪問器來分配新值。這些訪問器可以有不同的訪問級別。
  • value關鍵字用於定義由 set訪問器分配的值。
  • 不實現set訪問器的屬性是隻讀的。
  • 對於需要沒有自定義訪問代碼的簡單性,考慮 使用自動實現的屬性

    public string FilePath 
    { 
        get 
        { 
         return this.filePath; 
        } 
        set 
        { 
         this.filePath = value; 
        } 
    } 
    

的選項,你可以閱讀更多herehere

+0

如果它是一個屬性,那麼它似乎仍然有方法。得到,設置。可以發佈一個使用此類的FilePath屬性invoving get和set的例子嗎? – user1279988

+0

get和set是訪問或設置值時調用的特殊方法,您可以編寫代碼以在set中進行驗證,並在獲取返回值時執行計算,您可以在這裏閱讀更多內容http://msdn.microsoft.com /en-us/library/aa288470%28v=vs.71%29.aspx – Adil