按照我个人的理解,继承和实现接口不是一个概念,结构和类型都可以实现接口,枚举不能。

话说,结构可以继承吗?

先梳理一下C#中的继承关系,如下图:

class => [BaseClass =>] System.Object

struct => System.ValueType => System.Object

enum => System.Enum => System.ValueType => System.Object

C#中的所有类型,结构和枚举都是直接或间接继承自Object的。

一般定义一个类型可以这样写 class MyClass : Object { } 但是一般情况下,直接继承自Object都可以省略不写,直接写成这样 class MyClass { } 效果是完全一样的。

而所有的结构都是继承自ValueType,这是一个继承自Object的抽象类,但是我们自己写代码的时候不能写上这个继承关系,同样,我们也不可以定义一个类型继承自ValueType。

所有枚举都是继承自Enum,这是一个继承自ValueType的抽象类,同样我们在写代码的时候不能写上这个继承关系,我们自己也不能定义一个类型或结构是继承自Enum的。

可以说ValueType和Enum类都是.NET的私货,只允许他自己继承,不允许我们来继承。

我们编写代码的时候可以定义一个枚举继承自Int32或Byte,但是即使你这样写了,这个枚举类型还是继承自Enum,而你定义的Int32或Byte只是给枚举成员做一个范围限制。

综上所述,类型,结构和枚举都能继承,但是结构不能自定义继承,枚举的自定义继承实际上不是继承;
而能被继承的只能是类型。

再回到问题上,结构可以继承吗?

答案是可以继承,但是不可以被继承。

最新文章

  1. JS继承之原型继承
  2. powerdesigner显示列描述信息
  3. Servlet编程
  4. linux命令:xargs
  5. myeclipse中的weblogic 服务未正常关闭问题解决。
  6. Docker的学习--介绍和安装
  7. Ubuntu下安装Django
  8. POJ----(3974 )Palindrome [最长回文串]
  9. linux中pip安装步骤与使用详解
  10. EAPOL 协议
  11. [redis] Jedis 与 ShardedJedis 设计
  12. orm 通用方法——GetOneModel 条件查询一个对象
  13. Django admin site(一)ModelAdmin Options
  14. 从细菌GFF文件提取CDS序列并转换为氨基酸序列
  15. Ansible安装部署以及常用模块详解
  16. Rocketlab公司火箭Electron介绍
  17. 【XSY2669】归并排序 树状数组 简单组合数学
  18. 同一域名基于源ip地址分配给不同ip的dns配置--bind9.8.2
  19. 课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)—— 2、Practice Questions
  20. Spring Cloud Netflix项目进入维护模式

热门文章

  1. C# DES进行加解密
  2. iOS RSA加密解密及签名验证
  3. 内省(introspector)------>JavaBean
  4. Angularjs 服务注册
  5. equals()和hashCode()隐式调用时的约定
  6. android共享内存
  7. 【OPENGL】第三篇 着色器基础(一)
  8. vnc--centos 7 安装和配置
  9. SQL Server 连接字符串备忘
  10. jmeter录制移动APP脚本