Delphi 在 C# 中的子范围类型?

Pol*_*Pol 1 .net c# delphi clr pascal

在 Delphi(或任何 Pascal)中,您可以声明子范围类型,因此如果您尝试从允许的范围之外分配值,则会出现编译器错误。

var
    i: 1..8;
begin
    i := 8; // i := 9 would not work
Run Code Online (Sandbox Code Playgroud)

这可以在 C# 中完成吗?我可以想象创建自定义结构,例如SubrangeType<byte>但我正在寻找内置的东西。

编辑: xanatos 和 DavidHeffernan 的评论让我对更具体的问题有了想法。Delphi 中的子范围检查在运行时和编译时都可用。使用自定义结构在 C# 中可以在运行时实现它,但是是否可以在 C# 中实现对编译时的检查?

Dav*_*nan 5

C# 没有与 Pascal 子范围等效的内置语言功能。