我正在VS 2010中的vb.net中创建一个WCF。我有一些当前字节(0 - 255)的属性,代表不同的测试分数。我可以基于此创建自己的类型,只允许0到110之间的值吗?例如,如果我有
Dim a as Byte
a = 256
我将得到“常量表达式在'Byte'类型中无法表示。”在编译代码之前。我想为我自己的类型提供类似的东西,所以下面的代码会给我“在'myByte'类型中不能表示常量表达式。”
Dim a as myByte
a = 110
答案 0 :(得分:2)
您只能使用预定义(本机)类型作为Byte,并实现一些功能,例如重载运算符以检查最小值和最大值。但是,并非每个操作员都可以过载,在这种情况下,包括分配操作员'='。
检查http://msdn.microsoft.com/en-us/library/8edha89s%28v=vs.71%29.aspx和教程是否有所帮助。
要为您的类型指定一个值,您可以使用属性或方法来设置对boudaries和其他条件的值检查,这是完全可行的。
但要将其定义为本机......否定,先生。
答案 1 :(得分:1)
不,我不认为这是可能的。您必须使用构造函数初始化myByte实例并在运行时进行范围检查(不确定它有多大用处)。