2012-10-17 37 views
4

我試圖做一些類似於ASP.NET的User.Identity.Name。我已經讓這個類保存了這些信息,但是我不知道如何寫入這個變量,因爲我只添加了get {};寫入一個只讀存取器c#

private static string _firstName; 
public static string FirstName 
{ 
    get { return _firstName; } 
} 
+1

要麼添加二傳手,或不寫它... –

回答

2
public class YourAwesomeClass 
    { 
     private static string _firstName; 
     public static string FirstName 
     { 
      get { return _firstName; } 
     } 
    public YourAwesomeClass(string firstName) 
    { 
    _firstName=firstName; 
    } 
    } 

,或者你如果是使用DOTNET 3.0或更高版本,你可以使用自動屬性,編譯器將自動爲您創建支持字段。

public class YourAwesomeClass 
     { 

      public static string FirstName 
      { 
       get;private set; 
      } 
     public YourAwesomeClass(string firstName) 
     { 
     FirstName=firstName; 
     } 
     } 
+0

'this'?它是一個靜態的領域。 – DarthVader

+0

ahh.thanks的信息,只是編輯。 – crypted

+0

是的,它屬於類沒有一個實例 – DarthVader

3

有2種方法可以做到這一點。第一種方法是添加一個私人setter。

private static string _firstName; 
public static string FirstName 
{ 
    get { return _firstName; } 
    private set { _firstName = value; } 
} 

另一種選擇是向您的構造函數中添加一個參數並在其中設置值。

public YourClass(string firstName) 
{ 
    _firstName = firstName; 
} 
0

寫二傳手梅索德:

public static string FirstName 
{ 
    get { return _firstName; } 
    set { _firstName = value; } 
}