私のプロジェクトの1つに、ビデオ形式のカスタム識別子文字列を表す値の型/構造体があります。この場合、コンテンツタイプの文字列が含まれますが、それは異なる場合があります。
構造体を使用したので、渡されたときに強く型付けでき、初期の文字列値に対して健全性チェックを実行できます。
public struct VideoFormat {
private string contentType;
public VideoFormat(string contentType) {
this.contentType = contentType;
}
public string ContentType {
get { return this.contentType; }
}
public override string ToString() {
return this.contentType;
}
// various static methods for implicit conversion to/from strings, and comparisons
}
非常に一般的な形式がいくつかあるため、これらをデフォルト値の静的読み取り専用フィールドとして公開しました。
public static readonly VideoFormat Unknown = new VideoFormat(string.Empty);
public static readonly VideoFormat JPEG = new VideoFormat("image/jpeg");
public static readonly VideoFormat H264 = new VideoFormat("video/h264");
共通の値を静的な読み取り専用フィールドとして公開するか、取得専用プロパティとして公開する方がよいでしょうか。後で変更したい場合はどうすればよいですか?.Net Framework全体で使用されている両方のメソッドが表示されます。たとえばSystem.Drawing.Color
、静的な読み取り専用プロパティを使用しSystem.String
、の静的な読み取り専用フィールドとString.Empty
、System.Int32
の定数を使用しMinValue
ます。
(ほとんどの場合、この質問からコピーされますが、より具体的で直接関連のない質問が含まれます。)