質問

C#でint、boolなどの非脆弱な値タイプを作成する方法は?

役に立ちましたか?

解決

はい、これらは呼ばれます struct.

構造体は、同じタイプです int, bool その他。

彼らは彼らに関連するいくつかのルール/推奨事項を持っています:(私はこれらが最も重要だと思います)

  • refまたはoutキーワードを使用していない場合、構造体は渡され、値によって割り当てられます...これは、構造体内に入れるものはすべて、メソッドに割り当てたり渡されたりするときにコピーされることを意味します。だからこそ、大きな構造体を作ってはいけません。

  • C#の構造体のパラメーターのないコンストラクターを定義することはできません

  • 構造体は不変であり、プロパティセッターがない方が良いです。可変構造体を作ることで、本当のトラブルに巻き込むことができます。

他のルールは、構造に関するMicrosoft Docsに記載されています。

はどうかと言うと 非不可能な参照タイプ... これは ありえない. 。コード内のヌルを手動で確認する必要があります。

他のヒント

7年後、これが可能になりました

  • C#8を含む.NET Core 3.0をインストールします。
  • 言語バージョンを.csprojファイルに8.0:8.0に設定します。
  • プロパティをtrue(.to your your csprojに追加)

彼の詳細は、これが書くコードと既存のコードに影響を与えます。

https://praeclarum.org/2018/12/17/nullable-reference-types.html

あなたはaを定義できます struct:

構造体タイプは、通常、長方形の座標やインベントリ内のアイテムの特性など、関連する変数の小さなグループをカプセル化するために使用される値タイプです。次の例は、単純な構造宣言を示しています。

public struct Book
{
    public decimal price;
    public string title;
    public string author;
}

ただし、ようなエイリアスを定義することはできません int 為に System.Int32 フルネームで参照する必要があります MyNamespace.Book (また Bookusing MyNamespace;)あなたの構造体に。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top