아래 예와 같이 많은 기존 .Net 1.1 스타일 코드를 보았습니다.이 코드는 자동 속성을 사용하여 축소하고 싶습니다. 이것은 많은 수업이 30-40 % 줄어들 때 도움이 될 것이라고 생각합니다.이 .Net 1.1 샘플을 리팩토링 할 때 자동 속성을 활용하는 방법?
public int MyIntThingy
{
get;
set;
}
을 그리고 유일한 질문은 - 내가 MyIntThingy = -1;
을 설정하는 경우 :
public int MyIntThingy
{
get
{
return _myIntThingy;
}
set
{
_myIntThingy = value;
}
} private int _myIntThingy = -1;
이 될 것입니다?
처음부터 수업을 쓴다면 더 좋은 아이디어를 얻었지만 나는하지 않았습니다. 분명한 대답은 생성자에 넣는 것입니다. 문제는이 클래스에 많은 생성자가 있다는 것입니다. 디버거에서 -1
초기화를 보면서, 나는 그것이 생성자가 호출되기 전에 일어난다 (나는) 믿는다. 마치 여기에 설명 된 것처럼 정적 생성자를 사용해야하는 것처럼 보입니다. http://www.c-sharpcorner.com/uploadfile/cupadhyay/staticconstructors11092005061428am/staticconstructors.aspx 을 제외하고는 내 변수가 정적이 아닙니다. 자바의 정적 이니셜 라이저가 떠오르지 만, 다시 말해, 변수는 정적이 아닙니다. http://www.glenmccl.com/tip_003.htm
이 클래스의 문체는 있지만 기능은 변경하지 않으려합니다. 그것이 진절머리 나는 것처럼, 그것은 몇 년 동안 시험되고 일을했습니다. 기능을 깨뜨리는 것은 나쁠 것입니다. 그래서 ... 나는 더 짧고, 더 달콤하고, 더 귀여우면서도 평등 한 코드를 찾고 있습니다. 질문이 있으면 알려주세요.
나는 그대로 두십시오. 그것은 사소한 세부 사항이며 자동 속성은 기본값을 필요로 할 때만 사용할 수 있습니다. 여기에는 기본값이 필요하지 않으므로 자동 속성을 사용할 수 없습니다. –
:) 우리 중 일부는 다른 것보다 세부 정보에 더 집착합니다. –