宣言の用途は何ですか
private Int64 _ID ;
public Int64 ID{get { return _ID; }set { _ID = value; } };
このようにプライベート変数を宣言します
通常、コーディングでは ID を直接使用し、ID はプライベートな _ID にアクセスします。直接宣言する代わりに、これがどのようにセキュリティを強化するか
public int64 ID{get;set;}
両方の長所:
public long ID {get;set;}
それは簡単ではありませんでしたか?
フィールドを として公開するべきpublic
ではありませんが、それは冗長にする必要があるという意味でもありません。
getbenefit
および set メソッドによってカプセル化の を取得し、 を配置できる場所に呼び出しますcustom logic
。プライベートは、一部のボディが に書き込むときに set メソッドによる_ID
プロパティのデータを保持するためのプレースホルダーです。同様に、 によって値を与える前にカスタムロジックを配置できます。protected
_id
get
これは、msdn
プロパティについて説明するものです」プロパティは、フィールドとメソッドの両方の側面を兼ね備えています。オブジェクトのユーザーには、プロパティはフィールドのように見えます。プロパティにアクセスするには、同じ構文が必要です。クラスの実装者にとって、プロパティは 1 つです。または、get アクセサーおよび/または set アクセサーを表す 2 つのコード ブロック. get アクセサーのコード ブロックは、プロパティが読み取られるときに実行されます.set アクセサーのコード ブロックは、プロパティに新しい値が割り当てられるときに実行されます. set アクセサーのないプロパティは読み取り専用と見なされます. get アクセサーのないプロパティは書き込み専用と見なされます. 両方のアクセサーを持つプロパティは読み書き可能です ". 詳しくはこちらをご覧ください。
値を設定および取得する前に入力または出力を確認すると、セキュリティが確保されます。次のようになります。
private int? _ID;
public int ID
{
get { return _ID ?? 0; }
set { _ID = value >= 0 ? value : 0; }
}
Properties
およびについて読む必要がありFields
ます。プロパティはより適切なカプセル化を提供するため、パブリック フィールドを公開する代わりに使用する必要があります。