【发布时间】:2014-11-06 00:19:24
【问题描述】:
这是我的代码
public class MyClass
{
int LeftPoints;
int RightPoints;
public MyClass(int points)
: this (points, points)
{
if (points < 0)
throw new ArgumentOutOfRangeException("points must be positive");
}
public MyClass(int leftPoints, int rightPoints)
{
if (leftPoints < 0)
throw new ArgumentOutOfRangeException("leftPoints must be positive");
if (rightPoints < 0)
throw new ArgumentOutOfRangeException("rightPoints must be positive");
}
}
很明显,如果我打电话给new MyClass(-1),它会抛出消息“leftPoints must be positive”。
是否可以使用: this (points, points) 重载第一个构造函数并仍然获得“正确”验证?
【问题讨论】:
-
你可以一起编译两个异常然后抛出一个AggregateException
-
你为什么不使用无符号整数
public MyClass(uint points)那么它只会是积极的
标签: c# constructor-overloading