私はクラスを持っていますが、このクラスは空でもかまいません。このクラスはString型のパブリックプロパティのみを持ちます。このクラスが空の状態にある場合は、すべてのプロパティの値がString.Emptyであることを意味します。自分の静的な空またはゼロフィールドを正しく実装する方法
1)public static フィールドを使用すると、Class.Emptyのプロパティを変更できます。
2)私は(パブリック静的プロパティゲッターは、新しい空のオブジェクトを返すべきであることがわかり手動)たびに空にするためのすべてのフィールドを設定しないでください。私は悪い習慣と考えています。
3)別の解決方法は、独自のクラスを実装することです。 IsNullOrEmpty(クラスobj)。
4)A 非static public booleanプロパティobj。 IsEmpty。
他のクラスここで、このクラスが使用されている場合、このプロパティは決してnullになりません。 他のクラスは、それを適切に初期化する(さらに別のクラスの)メソッドから返されます。
プロパティがnullの唯一のケースは、そのメソッドの外に新しいものがあると、そのメソッドが無効な状態になることです。
一度プロパティが設定されると、決して変更しないでください。答えはいいえ、そうですか? –
回答を編集してコメントを反映する... –
これは当てはまりますが、これはコンストラクタを使用してプロパティを最初に設定した方法です。残念ながら、型がXmlSerializerでシリアル化されることには言及していませんでした。私の知る限りでは、すべてのシリアル化されたプロパティのパブリックget/setterが必要です。しかし、IXmlSerializable(これは変更しないことを予定している小さなクラスです)を実装すると、パブリックセッターは必要ありません。正しい?このクラスを変更する場合は、フィールドを変更/追加するだけでなく、IXmlSerializable実装の文字列も変更する必要があります。 –