내 C# 컴파일러가 손상되었는지 또는 자동 속성의 작동 방식을 이해하지 못하는지 확인하기 위해 온 전성 검사가 필요합니다.C# 인스턴스 생성자에서 자동 속성을 초기화하지 못했습니다.
다음 클래스 정의 및 생성자가 주어지면 각 구성원 값을 기록하십시오.
public class MyClass
{
public string MyString { get; set; }
public string _anotherString;
public MyClass()
{
MyString = "some value";
// <--- debugger shows MyString as null
_anotherString = "another value";
// <--- debugger shows _anotherString as "another value"
}
}
이것은 다양한 클래스에서 계속 발생합니다. 즉, 생성자에서 값을 할당 할 때 모든 자동 속성이 초기화되지 않습니다. 그들은 다른 곳에서도 일합니다. 그러나 백업 저장소를 사용하도록 백업 변수를 변경하고 백업 변수를 초기화하면 올바르게 초기화됩니다.
생성자에서 자동 속성을 초기화하는 것이 항상 안전하다고 가정합니다. 그렇지 않으면 무엇인가 놓치고 있습니까? 그리고 그렇다면 Visual Studio에서 어떤 일이 벌어 질 수 있습니까?
'* MyString = ...'또는 다음 줄에서 * 처음 * 휴식합니까? 귀하의 의견에 다음 줄에 있지만, 당신은 코멘트에 중단 점을 가질 수 없습니다 제안합니다. – BartoszKP
디버거를 사용하지 않고 출력을 표시 할 수 있습니까? 예를 들어'Console.WriteLine' 또는'MessageBox.Show (...)'등등입니다. 자동 속성은 사용자가 설명하는 방식으로 동작하지 않습니다. –
'Console.WriteLine()'으로 확인하십시오. 디버거에 잘못된 디버거가 표시되는 버그가 있다고 생각합니다. – siride