C#でint、boolなどのnullを許容しない値の型を作成するにはどうすればよいですか?
はい、これらはstruct
と呼ばれます。
構造体は、int
、bool
などと同様に値型です。
彼らはそれらに関連するいくつかのルール/推奨事項を持っています:(私はこれらが最も重要だと思います)
構造体は、refまたはoutキーワードを使用しない場合、値によって渡され、割り当てられます...これは、構造体に配置したすべてのものが、メソッドに割り当てまたは渡すときにコピーされることを意味します。そのため、大きな構造体を作成しないでください。
c#では、構造体にパラメーターのないコンストラクターを定義することはできません
構造体は不変であり、プロパティセッターを持たない方が適しています。変更可能な構造体を作成することで、実際の問題に陥ることがあります。
その他のルールは、構造体に関するMicrosoftドキュメント内にあります。
null不可の参照型 ...と同様、これは不可能です。コード内のnullを手動で確認する必要があります。
struct を定義できます:
構造体タイプは、長方形の座標や在庫のアイテムの特性など、関連する変数の小さなグループをカプセル化するために通常使用される値タイプです。次の例は、単純な構造体宣言を示しています。
public struct Book { public decimal price; public string title; public string author; }
ただし、System.Int32
に対してint
のようなエイリアスを定義することはできず、フルネームMyNamespace.Book
(またはusing MyNamespace;
付きのBook
)で参照する必要があります。あなたの構造。
7年後、これは今可能です
彼のこれに関する詳細は、コードと既存のコードの作成に影響します:
https://praeclarum.org/2018/12/17/nullable-reference-types.html