1

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

var
    i: 1..8;
begin
    i := 8; // i := 9 would not work

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

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

4

1 回答 1

5

C# has no built-in language feature that is equivalent to Pascal subranges.

于 2013-08-18T17:23:42.093 回答