2016-10-14 81 views
0

我正在讀回一些屬性到對象的構造函數中。其中一個屬性是對另一個屬性的計算。如何添加分配計算的屬性值到對象?

但是,當我創建這個對象計算Implementation_End_String屬性值總是空:

private string implementationEndString; 
    public string Implementation_End_String { 
     get{ 
      return implementationEndString; 
     } 
     set { 

      implementationEndString= DataTimeExtensions.NullableDateTimeToString(Implementation_End); 
     } 
    } 

問:

你怎麼可以在計算特性傳遞給對象的構造函數?

這是構造函數的依據和計算性能:

private string implementationEndString; 
    public string Implementation_End_String { 
     get{ 
      return implementationEndString; 
     } 
     set { 

      implementationEndString= DataTimeExtensions.NullableDateTimeToString(Implementation_End); 
     } 
    } 



    public DateTime? Implementation_End { get; set; } 


    public ReleaseStatus(DateTime? implementationEnd) 
    { 

     //value is assigned at runtime 
     Implementation_End = changeRequestPlannedImplementationEnd; 



    } 
+0

的[?什麼是一個NullReferenceException,以及如何解決呢(可能的複製http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – mybirthname

回答

1

不需要該字段implementationEndString。只是讓Implementation_End_String一個只讀屬性,並在需要時創建從其他財產的字符串:

public string Implementation_End_String 
{ 
    get 
    { 
     return DataTimeExtensions.NullableDateTimeToString(Implementation_End); 
    } 
} 
1

寫這種方式。

private string implementationEndString = DataTimeExtensions.NullableDateTimeToString(Implementation_End); 

public string Implementation_End_String 
{ 
    get{ return implementationEndString; } 
    set{ implementationEndString=value; } 
    //if you don't want this property to be not changed, just remove the setter. 
} 

之後當你得到屬性值時,它將取值爲DataTimeExtensions.NullableDateTimeToString(Implementation_End);。在你的代碼中,當你試圖獲得工具時返回null,因爲implementationEndString是null

+0

這給了一個編譯器錯誤:「字段初始值設定項不能引用非靜態字段,方法或屬性。很明顯,因爲NullableDateTimeToString是一個靜態方法。不知道在這種情況下要做什麼。 –