which is alot cleaner is my opinion
後者は、自動実装プロパティと呼ばれます。コンパイラは、ボイラープレートコードを削減できるバッキングフィールドを提供します。あなたのコードで_Name
プライベートメンバーを参照することはできます。
より良い/クリーナーによって異なります。同様の例は、コレクションクラスの読み取り専用Count
財産になり
Public ReadOnly Property Age As Integer
Get
If DateOfBirth <> DateTime.MinValue Then
Return (DateTime.Now.Year - DateOfBirth.Year)
Else
Return 0
End If
End Get
End Property
:あなたはこのような状況のためのフルバージョンが必要です。または:
Private _name As String = ""
Public Property Name As String
Get
Return _name
End Get
Set(value As String)
If _name.ToLowerInvariant <> value.ToLowerInvariant Then
_name = value
NotifyPropertyChanged()
End If
End Set
End Property
自動実装バージョンが使用できないことがあります。本として、私はVSの古いバージョンを持っている人のために少なくとも両方の方法をカバー/表示することを期待しています。
自動実装されたプロパティはVS 2010で利用可能になりました。 NET Frameworkのバージョンはコンパイラ機能であるため問題ありません。
私が理解する限り、最後の例は自動実装されたプロパティです。彼らはそれほど遠くない(おそらく5年前に)導入されました。それ以前に本が出版されたのかもしれませんか?後の章では、著者は自動実装のプロパティを導入し、この本の以前の例と比較してより良い構文を表示します。 – Disappointed
最後の例は、コンパイラがあなたのためにプライベート変数を生成するようにします。プライベート変数を使用する理由は、取得/設定時に計算/アクションを実行する場合や、 'ReadOnly'プロパティがある場合です。 –