【发布时间】:2012-01-27 12:59:27
【问题描述】:
我将如何使用 PostSharp 来替换它:
[WarnIfGetButUninitialized]
public int MyProperty {get; set; }
有了这个:
/// <summary>
/// Property which warns you if its value is fetched before it has been specifically instantiated.
/// </summary>
private bool backingFieldIsPopulated = false;
private int backingField;
public int MyProperty {
get
{
if (backingFieldIsPopulated == false)
{
Console.WriteLine("Error: cannot fetch property before it has been initialized properly.\n");
return 0;
}
return backingField;
}
set {
backingField = value;
backingFieldIsPopulated = true;
}
}
更新
我还应该补充一点,这是提高代码可靠性的好方法。在一个有 20,000 行的项目中,很高兴知道所有内容在使用之前都已正确初始化。我打算将它用于 Debug 构建,并在 Release 构建中将其删除,因为 我不想不必要地放慢最终发布的速度。
【问题讨论】:
标签: c# .net visual-studio postsharp