概要 var builder = new StringBuilder(); builder.AppendFormat("{0}/{1}", count, max).AppendLine(); よくStringBuilderを使用して文字列を整形するのですが AppendFormat関数を使って改行したい場合は AppendFormat関数の後にAppendLine関数を呼び出す必…
ソースコード using System; using System.Collections.ObjectModel; /// <summary> /// 配列の拡張メソッドを管理するクラス /// </summary> public static class ArrayExtensions { /// <summary> /// ランダムに並び替えた新しい配列を返します /// </summary> public static T[] Shuffle<T>(this T</t>…
概要 var characters = new Character { new Character{ Job = "王国兵士" }, new Character{ Job = "魔法使い" }, }; var soldier = Array.Find(characters, c => c.Job == "王国兵士"); int index = Array.FindIndex(characters, c => c.Job == "王国兵士"…
はじめに 例えばCRLF(\r\n)の改行で区切られた文字列をString.Split関数で分割する場合 var src = "ピカチュウ\r\nカイリュー\r\nヤドラン"; // 1. エラー src.Split("\r\n"); // 2. OK src.Split(new []{ "\r\n" }, StringSplitOptions.None); 1のように文…
ソースコード /// <summary> /// object 型の拡張メソッドを管理するクラス /// </summary> public static partial class ObjectExtensions { /// <summary> /// 渡された数値を3桁カンマ区切りの文字列に変換して返します /// </summary> public static string WithComma(this object self) { retu…
#概要 if (name == "チコリータ" || name == "ヒノアラシ" || name == "ワニノコ") { // ... } 1つの文字列を複数の文字列と比較して いずれかの文字列と等しかった場合は処理を行うといったことをやるときに 上記の書き方は冗長なので using System.Linq; …
はじめに int num = 1234; Debug.Log(num.ToString("D8")); // 00001234 数値を0埋めの文字列に変換する場合は上記のような構文を使用すると実現できますが ゲームを開発していると、数値を0埋めの文字列に変換する機会が意外と多いので 僕は下記のような拡…
はじめに for (int i = 0; i < MAX; i++) { Debug.Log(i); } 上記のような単純なループ処理はよく記述しますが ループ変数の宣言や終了条件の記述、ループ変数のインクリメントなど 処理内容の単純さに比べると構文は冗長です なので、下記のような拡張メソ…
概要 Actionデリゲートのnullチェックを省略するための拡張メソッドを作ったついでに Funcデリゲートに関しても同様のものを作成しました まだ使ったことはないですがきっと役に立つはず・・・ Func<bool> func = null; func.Call(); // OK func(); // NULL例外発生</bool>…
はじめに private Texture LoadTexture(Action<Texture> onLoaded = null) { // ... if (onLoaded != null) { onLoaded(texture); } } 例えばテクスチャを読み込む関数があって 読み込んだテクスチャを戻り値だけでなくコールバック関数でも渡せるようにしたとすると </texture>…
概要 var texts = new[] { "ピカチュウ", "カイリュー", "ヤドラン" }; foreach (var n in texts.Select((val, index) => new { val, index })) { Debug.Log(n.index + ":" + n.val); } foreach文を使用する場合、LINQのSelect関数を使うと周回数が簡単にわ…
概要 list.AddRange(1, 2, 3); // エラー List型のインスタンスに値を追加するときに 上記のような書き方ができると楽だなと思って下記のような拡張メソッドを作りました /// <summary> /// 指定したコレクションの要素を List の末尾に追加します /// </summary> /// <typeparam name="T">List の型</typeparam>…
概要 Array.ForEach(items, c => Debug.Log(c)); 配列をArray.ForEach関数で処理すると少し書き方が冗長になるので items.ForEach(c => Debug.Log(c)); ListのForEachのように呼び出せるようにする拡張メソッドを作りました このソースをプロジェクトに追加…
概要 // キャラクター public class Character { public string Name; // 名前 public int Level; // レベル } 上記のようなキャラクターの情報を管理するクラスがあったとして このクラスのインスタンスの情報をログに出力したい場合に下記のような構文を書…