我有一个名为Bool的结构,它只是代表1和1中的bool值。 0(这不是所有的结构,只有我的问题所在。)
public struct Bool
{
public static readonly Bool Btrue = 1;
public static readonly Bool Bfalse = 0;
int value;
public Bool(int value)
{
this.value = value;
}
public static implicit operator Bool(int x)
{
if (x == 1) return Btrue;
else return Bfalse;
}
}
我想要达到的是在这张照片中
the kind of error i'm talking about
我希望另一条线(Bool c = 2)用红线显示(int a = 1.2)中的相同类型的错误(我知道1.2不是整数,但我在谈论错误)。
我希望如果输入的值(Bool c = 2)[我的意思是2],不是1或0,则代码下会显示一个带有红线的错误。
我知道异常,但我希望这个错误是编译错误而不是执行错误(如果可能的话)
答案 0 :(得分:0)
您无法引入新的编译器错误。我的建议是将0
视为False
,将所有其他值视为True
。这是许多编程语言使用的一种非常常见的方法。
您还可以使用Code Contracts或Use Roslyn to Write a Live Code Analyzer for Your API。