2017-06-07 10 views
1

は、これまでのところ私は今、私は、このプロパティのセッターを保護する必要があるように私のコードに変更を加える必要があり保護されたセッターでVB.NETで自動的に実装されるプロパティ?

Public ReadOnly Property Username() As String 

としてVB.NETでの読み取り専用プロパティを持っていました。

public string Username {get; protected set;} 

をしかし、私はこのような短い手やVB.NETで格好良い解決策を見つけることができません:C#では私が行っているでしょう。 VB.NETはそれを提供していますが、私はこれを知らないのですか?あるいは、あまりにも多くのコードを書く必要がありますか、それは少し醜いように見えるようにする必要がありますか?

Public Property Username() As String 
    Get 
     Return m_Username 
    End Get 
    Protected Set 
     m_Username = Value 
    End Set 
End Property 
Private m_Username As String 

20個のプロパティがあり、このように設定すると、クラスが非常に汚くなります。

答えて

0

あなたはこのようにそれをすることによって、あなたのコードを少し短くすることができます:あなたはこのクラスを継承するクラスで_usernameを通じてユーザー名を設定することができます

Protected _username As String 

Public ReadOnly Property Username As String 
    Get 
     Return _username 
    End Get 
End Property 

その方法。

+0

これは残念なことに、INotifyPropertyChangedイベントを発生させるなど、プロパティ設定のロジックを追加することはできません。値を設定するための専用のメソッドを実装することもできますが、このロジックも処理できますが、メソッドはprotectedとして宣言でき、 '_username'はprivateにすることができます。 –

関連する問題