using declaration

using を変数宣言時に指定するとスコープを抜けた時に Dispose が自動で呼び出される。IDisposable を実装しているクラスに対して使用可能。

  • System.IDisposable : アンマネジドリソースを開放する仕組みを提供する。GC に任せたくない場合に実装する。

IEnumerable

  • コレクションに対する反復子を提供するインタフェース
  • eg. foreach の反復子を提供
  • Select() – 引数のラムダ式を適用した新しいコレクションを返す
  • Where() – 引数のラムダ式が真の要素で新しいコレクションを返す

yield return

  • yield return で遅延評価されるコレクションを返せる

テンプレートクラス(ジェネリッククラス)の実装

  • テンプレートパラメータの制約を書ける
    where template_param : [constraint], [constraint]

ベースクラスの取得

C++のthisでベースクラスにアクセスしたい場合のC#版。

普通にアップキャストする。

ファイルのフルパスからディレクトリを取得

Path.GetDirectoryName(fullPath)を使う。内部処理はパスとして適切な文字列かチェックし、ファイル名部分をカットしているだけ。

参考:stackoverflow

ファイル出力

ログ出力

配列を宣言して初期化リストで初期化する

std::vector<T>相当のコンテナ

 

テキストファイルからラインを読み込んで任意セパレータでstringの配列にする

stringの先頭を大文字にする

stringの指定位置から指定文字数分を削除する

ディレクトリ内のファイルパス一覧を作成する

cf. C# examples

Typeで分岐する

typeofを使用する。switchよりif文を使うのが綺麗。

参考:

https://stackoverflow.com/questions/43080505/c-sharp-7-0-switch-on-system-type