我正在用 C# 编写一个类。
我偶然发现了代码重构提供的这条建议。而我没有
了解该工具在提供此建议/改进时的确切含义。
情况:
我使用 this.Text 属性在我的 Form 类的构造函数中设置标题。
Form()
{
//some initialization code ...
//...
this.Text = "Non modal form"; //Suggestion offered here..
}
代码重构工具提示警告:说正在访问虚拟成员
为了纠正这个问题,该工具自动添加了一个属性
public override sealed string Text
{
get { return base.Text; }
set { base.Text = value; }
}
谁能给我解释一下,添加密封属性会如何影响/改善这种情况。
干杯
最佳答案
您正在构造函数中调用虚拟成员。如果继承类并调用该属性,则无法保证您的代码将运行。将其密封可以防止这种情况,因为它不能在子类中被覆盖。这不应影响此特定示例中的任何内容。
关于c# - c#中密封字符串属性的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5472661/