2009-04-09 46 views
1
if (alMethSign[z].ToString().Contains(aClass.Namespace)) 

ここでは、exeまたはdllを読み込み、その名前空間を確認します。いくつかのDLLでは、名前空間がないので、aclass.namespaceは存在せず、NullReferenceExceptionを投げています。NullReferenceExceptionを回避する方法

私はそれを避けなければならず、残りのコードを続ける必要があります。 try-catchを使用すると、catch部分が実行されます。私はコードの残りの部分を続行したい。

+0

ほとんどすべての場合で同じです。いくつかのヒントについては、「[.NETのNullReferenceExceptionは何ですか?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)」を参照してください。 –

答えて

3

aClassTypeインスタンスですか?その場合はnullを確認してください:

if (aClass != null && alMethSign[z].ToString().Contains(aClass.Namespace)) 
13

例外をキャッチしないでください。代わりに、それを防御:

string nmspace = aClass.Namespace; 

if (nmspace != null && alMethSign[z].ToString().Contains(nmspace)) 
{ 
    ... 
} 
4

if文にnullのテストを追加します。

if(aClass.NameSpace != null && alMethSign[z].ToString().Contains(aClass.Namespace)) 
0

またはこれに拡張メソッドを使用して任意のヌルをチェックし、いずれかの空の文字列またはオブジェクトの文字列値を返す:NullReferenceException` `の

public static string ToSafeString(this object o) 
{ 
return o == null ? string.Empty : o.ToString(); 

} 
関連する問題