「NullReferenceException」をできるだけ回避する手段を列挙。
Action fugaAction = delegate{}; string hogeText = string.Empty; List<int> hogelist = new List<int>(); Dictionary<int, int> fooDictionary = new Dictionary<int, int>();
宣言と同時に初期化しておけばインスタンスが無いなんてことは無くなるためおすすめ。
通常string型変数の中身がnullか空かを判断するには以下の様に書きます。
if ( str == null || str == "" )
ですが、これではコードが汚くなり保守性が下がるため拡張メソッドを作成します。
public static class StringExtensions { /// <summary> /// nullまたは空かを確認します。 /// </summary> static public bool IsNullOrEmpty( this string self ) { return string.IsNullOrEmpty(self); } }
if ( str.IsNullOrEmpty() )
スッキリします。
if(action != null) { action(); }
毎回nullチェックを入れるのは面倒なので、同様に拡張メソッドを作成。
using System; public static class ActionExtensions { /// <summary> /// Action呼び出し。 /// </summary> static public void Call( this Action self ) { if(self != null) { self(); } } }
action.Call();
nullチェックが不要になります。