Successfully reported this slideshow.
Your SlideShare is downloading. ×

Visual Studioのデザイン時T4テキストテンプレートをほんの少し理解した.pdf

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 13 Ad
Advertisement

More Related Content

Recently uploaded (20)

Advertisement

Visual Studioのデザイン時T4テキストテンプレートをほんの少し理解した.pdf

  1. 1. Visual Studioのデザイン時T4テキスト テンプレートをほんの少し理解した 2022/8/25 tat_tt
  2. 2. 自己紹介 名前:tat_tt (たっと) 年齢:27歳(社会人5年目) 業務:C#を使ったデスクトップアプリ開発
  3. 3. 目次 • 背景 • 本日お話しすること • デザイン時T4テンプレートの概要 • 便利に使える場面と使い方 • まとめ
  4. 4. 背景 末尾の数字だけが変わるような複数のフィール ドやプロパティをコメントも合わせて、手動で 実装するのが面倒 調べてみると、デザイン時T4テンプレートを使 うと楽できそう 実際に使ってみて得た知見を今日は共有
  5. 5. 本日お話しすること 以下2点が話題 • デザイン時T4テンプレートの概要 • 便利に使える場面
  6. 6. Visual Studioのプロジェクト デザイン時T4テンプレートの概要(1) T4テキストテンプレートファイルを使って、テ キストファイルをビルド時に自動生成する仕組 み T4テキスト テンプレートファイル (.tt) ビルド時 テキストファイル (.txt, .csなど) 自動生成
  7. 7. ディレクティブ:出力ファイルの設定やコントロールブロック向けの設定 <#@ import namespace="System" #> <#@ output extension=“.cs” #> テキストブロック:出力ファイルに直接挿入されるテキスト public class Sample { // ・・・ } コントロールブロック:テキストを生成するためのプログラムコード <# for(int i = 0; i < 4; i++) { Write(i + ", "); } Write("4"); #> デザイン時T4テンプレートの概要(2) T4テキストテンプレートの構成要素は以下
  8. 8. 便利に使える場面と使い方 • 末尾の数字だけが変わるようなフィールドやプ ロパティを効率的に定義したい • ジェネリックで受け取る型の数だけが違うよう な共通実装が多いメソッドを効率的に定義した い 以降で具体例を掲示
  9. 9. 便利に使える場面 ~困りごと~ 20個の文字列型の設定項目があるクラスを定義 することを考える class Sample { /// <summary> /// 設定項目1 /// </summary> string SettingItem1 { get; set; } /// <summary> /// 設定項目2 /// </summary> string SettingItem2 { get; set; } // SettingItem3~20も同様に定義 } ■困る点 ・単純に20個定義する のが面倒 ・プロパティ名やコメ ントを変えると20個す べてに反映が必要
  10. 10. 便利に使える場面 ~テンプレートを使うと~ 制御ロジックを使って簡潔に書ける! 下で使う変数を定義 for文内のテキストを 20回分生成 この部分がfor文内の変数count の値に置き換わる
  11. 11. 便利に使える場面 ~使い方①~ T4テンプレート用の.ttファイルを追加
  12. 12. 便利に使える場面 ~使い方②~ テンプレート作成 保存 テンプレートから テキスト作成
  13. 13. まとめ 以下のような場面ではデザイン時T4テキストテ ンプレートが便利 • 末尾の数字だけが変わるようなフィールドやプロパ ティを効率的に定義したい • ジェネリックで受け取る型の数だけが違うような共通 実装が多いメソッドを効率的に定義したい Visual Studioで面倒なテキストを作る場合には デザイン時T4テキストテンプレートを使えない か確認するとよいかも!

×