я 2 свойства класса определяется следующим образом:C# Класс недвижимости Getter Вызывается Автоматически
private static string _validationError;
public static string ValidationError
{
get {
var temp = _validationError;
_validationError = "abc";
return temp;
}
set { _validationError = value; }
}
public static string CurrentError { get; set; }
Способ:
public static bool IsErrorStringEmpty()
{
Console.WriteLine("dddd");
return false;
}
Метод испытания:
[TestMethod]
public void ValidationErrorTest()
{
CurrentError = "My Error";
var empty = IsErrorStringEmpty();
}
Когда я отлаживать этот тест , это поведение, которое я наблюдаю:
Перед удалением 2-й строки метода проверки ValidationError = null (ожидается).
Когда он входит в IsErrorStringEmpty(), до того, как первая линия хит, ValidationError = нуль (ожидаемый).
Тогда правильно, когда он бил по 1-й линии, ValidationError = "ABC". Я не знаю, как этот getter вызывается вообще, хотя у меня нет явного кода до этого момента, чтобы получить доступ к свойству ValidationError.
У меня есть точки останова в поглотителе, но он не получил удар, и стека вызовов отображается, как показано ниже.
Я уверен, что это где-то, но я не могу найти его. Любые указатели приветствуются!
Положите точку разрыва в ваш геттер, а затем посмотрите на стек вызовов, когда ваш код сломается. –
Вы вызываете геттер в отладчике. Вместо этого наблюдайте '_validationError'. –
О, мой! Спасибо :). – AngieM