質問: Type.type1; // null Console.WriteLine(type.Id); Console.WriteLine(type.ProgrammaticName); } } ```
回答: `TypeIdentifier`の定義が開示されていないので確実とは言えませんが、`null`以外にしたいのであれば、とりあえず、`type1 = new Type();`とは書けそうです。 現実に値を持つ`Type`インスタンスを生成したい場合は、`Type`クラスにコンストラクタを作る必要があるでしょう。 ``` static Type() { type1 = new Type(0x01); type2 = new Type(0x02); type3 = (Type)0x03; // explicit operator Type(int)の実装が必要 } public Type(int value) { // TypeIdentifierのIdが代入可能な場合 Id = value; // { get; } のみ、privateなど、継承クラスから変更ができないようにする・している場合は // public Type(int value) : base(value) { } というように基底クラスコンストラクタ // 呼び出しを書く。 } // int型からの明示キャストを実現したいならexplicit、暗黙ならimplicitで // operator Type(int)を定義する public static explicit operator Type(int value) { return new Type(value); } ```