c# - System.Object 中的 protected 成员有什么意义?

标签 c#

protected 成员可以在其类中和派生类实例中访问。

如果 .NET 中的每个类型都派生自 Object,那么 System.Object 中的 protected 成员和公共(public)成员之间有什么区别吗?

最佳答案

正如您所说, protected 成员在其类和任何继承类中都是可访问的。公共(public)成员可以从任何其他类访问。​​

我在 MSDN 文档中看到 Object 的两个 protected 成员:FinalizeMemberwiseClone。这些方法可在任何继承类(即任何类)中调用,但不可公开访问。如果我们有以下内容:

class Foo
{
    object Test()
    {
        return this.MemberwiseClone();  
        // Works, because Foo can see protected MemberwiseClone
        // inherited from Object
    }
}

class Bar
{
    object Test()
    {
        var foo = new Foo();
        return foo.MemberwiseClone();
        // fails: Bar cannot see Foo's protected MemberwiseClone
        // because Bar does not inherit from Foo
    }
}

关于c# - System.Object 中的 protected 成员有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24049654/

相关文章:

c# - @Html.DropDownListFor如何设置默认值

c# - 使 http 客户端同步 : wait for response

c# - 过程或函数需要未提供的参数

c# - AutoMapper新增的IValueResolver如何使用?

c# - 是否有可能访问 WCF 服务操作的子集

c# - 使用 C# 中的 datagridview 值将表中的状态从 "reserved"更新为 "expired"

c# - DataGridView 单元格编辑结束事件

C#:消费计划中的 Azure Functions 中不存在 key 集

带有属性的 XML 中的 C# XML 反序列化 XML

c# - Encoding.GetString() 仅返回字节数组中的第一个字节