私は私の状況コンストラクタのオーバーロード時にNullReferenceExceptionを回避するにはどうすればよいですか?
void Main()
{
var a = new Lol(null);
}
public class Lol
{
public Lol(string a, string b)
{
if(a == null || b == null)
{
throw new Exception();
}
}
public Lol(Tuple<string, string> k)
: this(k.Item1, k.Item2)
{
}
}
はこの場合、私は2番目のコンストラクタでNullReferenceException
を取得していますより良い説明するために例を作りました。同じ構造体を保持しているメソッドの中からメソッドを処理する方法はありますか?またはプライベートメソッドを作成し、両方のコンストラクターにこのメソッドを呼び出させる必要がありますか?これは仕様によるものです
C#6(VS 2015)をお持ちの場合は、 'this(k?.Item1、k?.Item2)'を実行できます。 – juharr
また、 'this ... 'を呼び出さずに2番目のコンストラクタの中で実行してください。これは、別のヌルチェックを行っているので、より適切かもしれません。 – DavidG
これを呼び出さないでください。実際の2番目のコンストラクタの割り当てを処理します。次に、コンストラクタ自体の中でヌルチェックを行うことができます。 – Jay