c# - c#中密封字符串属性的使用

标签 c# .net-2.0

我正在用 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/

相关文章:

c# - 设置图像时参数无效

c# - CookieAuthenticationOptions.LogoutPath 属性在 ASP.NET Core 2.1 中有什么作用?

c# - .NET 2.0 应用程序可以使用 .NET 3.5 的哪些功能?

c# - SharePoint:创建 SPQuery 查询时出现 CAML 查询错误

c# - 创建 C# Winform 开发和生产环境

c# - 如何获取计算机描述?

text - 如何使用.Net 2.0绘制混合格式的文本

c# - 部分迁移到 .NET 4 - 找不到程序集

c# - 向 ExpandoObject 动态添加属性

c# - 面向 C# 程序员的 SQL Server