次を使用して配列の内容をチェックしている場合:
boardArray[xIn][yIn]
要素があることを期待していますが、要素/オブジェクトがないかどうかを事前に確認するにはどうすればよいですか? 私が知っている明白な答えを持つ本当にばかげた質問。
ここに何かがあることを期待しているコードをデバッグしようとしています。プログラムがクラッシュするのではなく、プログラムが実行されていることを事前に確認して報告したいと思います。
if(boardArray[xIn][yIn] == null)
//Skip it, do something, print it, whatever you gotta do
null で何もしたくない場合は、
if(!(boardArray[xIn][yIn]==null)) {
// Your operations here
}
null がどのように処理されるかは、else 部分で処理できます。これはオプションである可能性があります
受け入れられた回答 (正しい) に加えて、null である可能性のある配列オブジェクトの任意のレベルで null をチェックする必要があります。
チェックの方法と必要な情報に応じて、これを行うことができます
if (boardArray != null && boardArray[xIn] != null && boardArray[xIn][yIn] != null){
// all is good, do what must be done here
}
それらをループしている場合は、linq を使用してループ内の null 項目を削除できます。これは次のようになります (IDE を目の前で開いていないので、構文が少しずれている可能性があります。ご容赦ください。
foreach(var instance in boardArray[xIn].Where(x => x != null).Select(x => x).ToList()){
// instance is the not nulled value.
}
状況に応じて、やりたいことを実行する方法が複数あることを示すために、linq のアイデアを持ち出しました。
幸運と幸せなコーディング