我需要检查传递给构造函数的参数,并在将其视为无效的情况下防止特定对象的实例化。我发现可以抛出异常,因此对象引用将以预期的方式结束为空值。
例如,只有在传递给构造函数的整数为非负数时才会实例化此类。
尽管上述方法可以正常运行,但我相信c#可以提供更简洁的方式来完成此操作,避免每次构造新对象时都需要try/catch所需的额外成本。
例如,只有在传递给构造函数的整数为非负数时才会实例化此类。
class MyClass
{
public MyClass(int a)
{
if (a < 0)
{
throw new Exception();
}
}
}
尽管上述方法可以正常运行,但我相信c#可以提供更简洁的方式来完成此操作,避免每次构造新对象时都需要try/catch所需的额外成本。
static void Main(string[] args)
{
MyClass e1;
MyClass e2;
try
{
e1 = new MyClass(1);
}
catch(Exception) { }
try
{
e2 = new MyClass(-1);
}
catch(Exception) { }
}