首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 到 IL 深度解析:第4章 關鍵字與操作符 (下)(3) - 繼承 System.Array、不可繼承類別與循環引用異常

     編輯:關於C語言

繼承 System.Array 在 IL 中合法

C# 禁止繼承 System.Array、Delegate、Enum、ValueType,但 IL 允許。編譯器在編譯期強制此限制。

循環引用範例與異常

.class public auto ansi aa extends bb { ... }
.class public auto ansi bb extends cc { ... }
.class public auto ansi cc extends aa { ... }

載入時拋 TypeLoadException: Could not load class 'aa' because the format is bad,無明確提示循環引用。

語言規則 vs CLR 規則

語言規則(如不可繼承特定類別)由編譯器在編譯期執行;CLR/IL 規則較寬鬆,僅在類別載入/驗證階段檢查結構合法性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved