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,無明確提示循環引用。
語言規則(如不可繼承特定類別)由編譯器在編譯期執行;CLR/IL 規則較寬鬆,僅在類別載入/驗證階段檢查結構合法性。