我有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();
}
当调试这个测试,这是我看到的行为:
在测试方法的第二行命中之前,ValidationError = null(Expected)。
当它进入IsErrorStringEmpty(),所述第一线被击中之前,ValidationError = NULL(预期)。
然后,权当它击中1号线,ValidationError = “ABC”。我不知道这个getter是如何被调用的,尽管我没有直接访问ValidationError属性的明确代码。
我在吸气断点,但它并没有被打到,并调用堆栈,如下图所示。
我敢肯定它的地方,但我似乎无法找到它。任何指针都非常感谢!
在你的getter中放置一个断点,然后在代码中断时查看调用堆栈。 –
您正在调试器中调用getter。请注意'_validationError'。 –
哦,我的!谢谢 :)。 – AngieM