0

最近、インターネットで多くのチュートリアルを読んだ後、一部の開発者がモデル クラスのフィールドの記述をスキップして、次のようにプロパティだけを使用していることに気付きました。

public class MyClass
{
    public string MyProperty { get; private set; }
}

書くコードが減ること以外に、これを行うことの利点は何ですか? セッターが非公開であることは認識していますが、非公開フィールドを指定しない場合、何らかのセキュリティ上の問題はありませんか? 言い換えれば、ここでのベストプラクティスは何ですか? フィールドや関連するプロパティを使用せずにモデル クラスを作成するか、フィールドを使用せずにこれらのパブリック プロパティを使用するだけですか?

前もって感謝します、

ボー

4

2 に答える 2

5

In c# 3.0 and above, the compiler will put the local variables into the MSIL for you. It makes the code easier to read and more maintainable (less variables to keep track of, etc).

There should be no security issue because internally it is creating locally scoped member variables.

See Microsoft's documentation for more info.

于 2009-11-06T01:49:11.217 に答える
1

変数に対して操作を行っておらず、変数をそのまま設定して読み取るだけである場合、プライベート変数を作成し、完全なセッターとゲッターを実行するために余分なコードを追加する必要はありません。

C# はプライベート変数を作成するため、バイトコードは依然として正しいですが、そこでプログラムを読んでいる人にとっては、何が起こっているのかをより簡単に理解できます。

コードを読みやすくすることができれば、たとえコンパイラに構文糖衣が含まれていたとしても、それは勝利です。

ただし、プロパティが特定の範囲内にあることを確認するなどの操作を行う必要がある場合、C#3 では、他のすべてを自分で記述する必要があります。

ベストプラクティスは、質問にあるように書くことです。

于 2009-11-06T01:56:53.713 に答える