内容へ移動
ユーザ用ツール
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
現在位置:
Home
»
wiki
»
Unity
»
Tips
»
114 NULLチェックの回避方法
トレース:
wiki:unity:tips:114
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 114 NULLチェックの回避方法 ====== **「NullReferenceException」**をできるだけ回避する手段を列挙。 ===== nullになりうる変数は事前に初期化しておく ===== <code csharp> Action fugaAction = delegate{}; string hogeText = string.Empty; List<int> hogelist = new List<int>(); Dictionary<int, int> fooDictionary = new Dictionary<int, int>(); </code> 宣言と同時に初期化しておけばインスタンスが無いなんてことは無くなるためおすすめ。 \\ \\ ===== 文字列がnullか空かを判断する ===== 通常string型変数の中身がnullか空かを判断するには以下の様に書きます。 <code csharp> if ( str == null || str == "" ) </code> ですが、これではコードが汚くなり保守性が下がるため拡張メソッドを作成します。 <code csharp string型用拡張メソッド> public static class StringExtensions { /// <summary> /// nullまたは空かを確認します。 /// </summary> static public bool IsNullOrEmpty( this string self ) { return string.IsNullOrEmpty(self); } } </code> <code csharp 使用例> if ( str.IsNullOrEmpty() ) </code> スッキリします。 \\ \\ ==== ActionやFuncといったデリゲートの場合 ==== <code csharp> if(action != null) { action(); } </code> 毎回nullチェックを入れるのは面倒なので、同様に拡張メソッドを作成。 <code csharp Action型用拡張メソッド> using System; public static class ActionExtensions { /// <summary> /// Action呼び出し。 /// </summary> static public void Call( this Action self ) { if(self != null) { self(); } } } </code> <code csharp 使用例> action.Call(); </code> nullチェックが不要になります。
Permalink
wiki/unity/tips/114.txt
· 最終更新: 2016/09/12 13:19 by
step
ページ用ツール
ログイン
文書の表示
文書の先頭へ
印刷
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
oeffentlich