c# - 注文 - 詳細 テーブル




C#レコードタイプを宣言するには? (3)

私はC#7でレコードタイプを扱うブログを読んだ

class studentInfo(string StudentFName, string StudentMName, string StudentLName);

しかし、私はそれを試したとき、私はこれらのエラーが表示されます

CS0116名前空間にフィールドやメソッドなどのメンバーを直接含めることはできません
CS1022型または名前空間の定義、またはファイルの終わりが必要です
CS1514 {予想

これはどうやって動くのだろう?


C#7.0より前は、次のようなクラスを宣言しています:

レコードタイプはC#7.0ではまだ実装されていませんが(他の回答で詳しく説明しています)、C#6.0で導入された読み取り専用の自動プロパティを使用してコード短縮することができます。

public class studentInfo
{
    public string StudentFName { get; }
    public string StudentMName { get; }
    public string StudentLName { get; }

    public studentInfo(string strFN, string strMN, string strLN)
    {
        StudentFName = strFN;
        StudentMName = strMN;
        StudentLName = strLN;
    }
}

レコードタイプはC#7.0のロードマップ上にありましたが、最終的にはそれ以降のバージョンまで延期されました。

このブログ記事への返信としてMads Torgersenを引用するには、

[主なコンストラクター]は、レコードタイプ(C#7.0で検討していた)の関連概念とともに 、依然としてレーダーに乗っており、もっと良いデザインに着くことができると期待しています。

C#7のリリースから、この言語機能のhttps://github.com/dotnet/csharplang/blob/master/proposals/records.mdは、実装が「進行中」であることを示しています。


他の回答に追加するには、最近の機能をいつC#に表示するかを言語マイルストーンを見て簡単に追跡できます。 少なくとも3つのv7.xリリースが予定されていますが、レコードはC#8にスケジュールされています。 C#6とC#7でも予定されていたので、このターゲットを塩のピンチで扱います...





c#-7.0