在Delphi(或任何Pascal)中,您可以声明子范围类型,因此如果您尝试从允许范围外分配值,则会出现编译器错误。
var
i: 1..8;
begin
i := 8; // i := 9 would not work
可以用C#完成吗?我可以想象创建自定义结构,类似SubrangeType<byte>
,但我正在寻找内置的东西。
编辑: xanatos和DavidHeffernan的评论给了我更具体问题的想法。 Delphi中的子范围检查在运行时和编译时都可用。在C#中使用自定义结构可以实现在运行时实现,但是可以在C#中实现对编译时的检查吗?
答案 0 :(得分:4)
C#没有内置语言功能,相当于Pascal子范围。