주의! 표현식 본문 속성은 호출 할 때마다 식을 실행합니다! 제 대답의 마지막 부분에서 예제를 볼 수 있습니다.
public string Name => "bob";
는
public string Name
{
get
{
return "bob";
}
}
public string Name { get; } = "bob";
동안이
private readonly string _name = "bob";
public string Name
{
get
{
return _name ;
}
}
Check it out yourself.
에 대한 문법 설탕이에 대한 문법 설탕인가 0
주의 - 여기 위험한 부분입니다!
식 본문은 사용자가이 속성을 호출 할 때마다 실행됩니다. 이 하드 코드 값을 반환 때 문제가되지 않으나,이리스트를 돌려 않다면, 예를 들어, 새로운 목록마다 반환합니다입니다
public List<string> Names
{
get
{
return new List<string>() {"bob"};
}
}
:
public List<String> Names => new List<String>() {"bob"};
가 문법 설탕인가를 자동 속성 초기화와하지 않는 경우 :
public List<String> Names { get; } = new List<String>() {"bob"};
이에 대한 문법 설탕입니다 :
,439,
여기서 알 수 있듯이 목록은 한 번만 초기화됩니다.
Check it out yourself.
슬프게도 중복의 대답은 세트 - 한 번만 값의 구체적인 답변을하지 않습니다, 대답은 아래에있는 내 정확하게 질문에 대한 대답. – Jay