2016-10-14 9 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을/question/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

쓰기 그것은이 방법 :

는 상기의 ctor의 요지 및 계산 된 속성입니다.

그런 다음 속성 값을 얻으면 DataTimeExtensions.NullableDateTimeToString(Implementation_End); 값을 취합니다. 코드에서 implementationEndString이 null이기 때문에 구현물을 가져 오려고하면 null을 반환합니다.

+0

컴파일러 오류 '필드 초기자가 비 정적 필드, 메소드 또는 속성을 참조 할 수 없습니다. 왜냐하면 NullableDateTimeToString은 정적 메서드이기 때문입니다. 이 경우 무엇을해야할지 모르겠습니다. –