static类为什么不能用sealed关键字修饰
2010-03-25 14:34 潇湘隐者 阅读(1879) 评论(0) 编辑 收藏 举报今天在写代码时,顺手把一个static 类前面加上sealed关键字,结果编译时报错:” 类不能既是静态的又是密封的“。很是纳闷,sealed字段修饰类不是代表该类不能被继承吗,于是我去掉sealed关键字,生成一个dll。然后用Reflector查看了这个这个类的IL,结果发现如下情况:
public static class Utility 被翻译成下面的代码了
.class public abstract auto ansi sealed beforefieldinit Utility extends [mscorlib]System.Object
我想应该是static编译成IL时翻译成了abstract auto ansi sealed,在类前面再加一个sealed那就多余了,然后我查了下资料
发现static类必须直接从System.Object继承,不实现任何接口,因为接口方法只能通过类的实例来调用;到这里我也明白了个大概了. 后来在博客园搜索了下,发现有人已经在http://kb.cnblogs.com/a/1052558/这篇文章里研究过了这个问题。

扫描上面二维码关注我
如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库