如何在c#中使用构造函数返回值?

San*_*han 14 .net constructor

我遵循一个约定,我不会在类中使用任何print语句,但我在构造函数中进行了参数验证.请告诉我如何将我在构造函数中完成的验证返回给Main函数.

Ode*_*ded 32

构造函数确实返回一个值 - 正在构造的类型......

构造函数不应该返回任何其他类型的值.

在构造函数中验证时,如果传入的值无效,则应抛出异常.

public class MyType
{
    public MyType(int toValidate)
    {
      if (toValidate < 0)
      {
        throw new ArgumentException("toValidate should be positive!");
      }
    }
}
Run Code Online (Sandbox Code Playgroud)


Adi*_*dil 5

构造函数没有返回类型,但您可以使用ref关键字通过引用传递值。最好从构造函数抛出异常以指示验证失败。

public class YourClass
{
    public YourClass(ref string msg)
    {
         msg = "your message";
    }

}    

public void CallingMethod()
{
    string msg = string.Empty;
    YourClass c = new YourClass(ref msg);       
}
Run Code Online (Sandbox Code Playgroud)

  • 你_可以_并不意味着你_应该_。 (6认同)