2011-01-28 1 views
48

나는이 작업을 수행 할 수 :C# 속성 : 비공개 필드없이 사용자 지정 속성을 사용하는 방법?

public Name 
{ 
    get; 
    set 
    { 
     dosomething(); 
     ??? = value 
    } 
} 

는 자동으로 생성 된 개인 필드를 사용할 수 있습니까?

private string name; 
public string Name 
{ 
    get 
    { 
     return name; 
    } 
    set 
    { 
     dosomething(); 
     name = value 
    } 
} 
+1

: http://stackoverflow.com/questions/1277018/c-3-0-automatic- 속성 - what-be-be-the-private-variable-create- –

답변

60

getter 또는 setter에서 사용자 정의 작업을 수행하려면 자동 특성을 더 이상 사용할 수 없습니다.

13

이 불가능 :
또는 그것이 내가이 방법을 구현하는 것이 필요하다. 자동 구현 된 속성 또는 사용자 정의 코드.

3

시나리오에 맞게 구현해야합니다. getset은 모두 자동 구현되거나 완전히 구현되어야하며 둘을 함께 사용해서는 안됩니다.

14

이 뭔가를 시도 할 수 있습니다 :

이 SO 질문에이 좋은 토론이 많이 있습니다
public string Name { get; private set; } 
public void SetName(string value) 
{ 
    DoSomething(); 
    this.Name = value; 
} 
+4

+1 내 마음에이 대답은 수용된 대답을 꾸짖습니다. 자동 속성을 사용하고 있습니다. 명시 적으로 setter를 private로 설정합니다. 이는 최종 사용자 또는 개발자가 setter 메소드 뒤에 더 많은 일이 발생할 가능성이 있음을 알기 때문에 좋은 일입니다. – ooXei1sh

관련 문제