c# - 部分嵌套结构不会被继承

标签 c#

public class Base<T>
{
    T _data;

    public partial struct Data
    {
        public T _data;
    }
}

public class Custom : Base<int>
{
    public partial struct Data
    {
        public float _bla;
        public bool _bla2;
    }

    public void BlaBla()
    {
        Data data = new Data();

        //int data = data._data; <= NOT FOUND
        float bla = data._bla;
        bool bla2 = data._bla2;
    }
}

如上所述,Data类在父类和子类中定义了两次。

此外,Custom会根据需要定义额外的成员变量。

但是,无法访问 Base 中的 Data._data。

... 为什么会这样?

最佳答案

部分类只是 msil 中的语法糖,没有部分类。在本例中,您创建了 2 个不同的类。您没有类型 Data ,你有类型 Custom.DataBase<T>.Data .

    Console.WriteLine(typeof(Custom.Data));
    Console.WriteLine(typeof(Base<string>.Data));

enter image description here

关于c# - 部分嵌套结构不会被继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41629496/

相关文章:

c# - 为什么这个委托(delegate)分配不起作用,如何解决?

C# 命名空间中的枚举与类中的枚举有什么区别

c# - 如何制作瓷砖线?

c# - 如何实现更紧密的封装

c# - MaxDegreeOfParallelism 是如何工作的?

C# IteropServices 与 C++ dll - 在 excel 中工作?

c# - 带有电子邮件地址参数的 WebApi 方法从 HttpClient 返回 404

c# - 将数据源绑定(bind)到 DataGridViewComboBoxColumn 时,默认值始终显示为空白

c# - 在 Linq select 子句中重用表达式(查询格式)

c# - 修改 PropertyGrid 和 TypeConverterAttribute 的默认行为