NullReferenceExceptionを避けるためにどのように
-
06-09-2019 - |
質問
if (alMethSign[z].ToString().Contains(aClass.Namespace))
ここで、私はexeファイルやDLLをロードし、その名前空間を確認してください。いくつかのDLLで、そこには、名前空間ではありませんので、aclass.namespace
は存在せず、それがNullReferenceException
を投げています。
私はちょうどそれを避けるために持っており、それは、コードの残りの部分を継続する必要があります。私はのtry-catchを使用している場合、それはキャッチ部分を実行します。私はそれは、コードの残りの部分を続行します。
解決
はaClass
Type
インスタンスですか?もしそうなら - ちょうどヌルのためにそれをチェックします:
if (aClass != null && alMethSign[z].ToString().Contains(aClass.Namespace))
他のヒント
例外をキャッチしないでください。代わりに、それを防御ます:
string nmspace = aClass.Namespace;
if (nmspace != null && alMethSign[z].ToString().Contains(nmspace))
{
...
}
if文でnullのためのテストを追加します。
if(aClass.NameSpace != null && alMethSign[z].ToString().Contains(aClass.Namespace))
またはこれに拡張メソッドを使用して任意のヌルをチェックし、いずれかの空の文字列またはオブジェクトの文字列値を返す
public static string ToSafeString(this object o)
{
return o == null ? string.Empty : o.ToString();
}
所属していません StackOverflow