কোন পরিস্থিতিতে কোনও প্রাইভেট সেট বনাম কোনও সম্পদকে কেবলমাত্র পঠনযোগ্য সম্পত্তি হিসাবে তৈরি করা উচিত? নীচের দুটি খুব সরল উদাহরণ বিবেচনা করুন।
প্রথম উদাহরণ:
Public Class Person
Private _name As String
Public Property Name As String
Get
Return _name
End Get
Private Set(ByVal value As String)
_name = value
End Set
End Property
Public Sub WorkOnName()
Dim txtInfo As TextInfo = _
Threading.Thread.CurrentThread.CurrentCulture.TextInfo
Me.Name = txtInfo.ToTitleCase(Me.Name)
End Sub
End Class
// ----------
public class Person
{
private string _name;
public string Name
{
get { return _name; }
private set { _name = value; }
}
public void WorkOnName()
{
TextInfo txtInfo = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo;
this.Name = txtInfo.ToTitleCase(this.Name);
}
}
দ্বিতীয় উদাহরণ:
Public Class AnotherPerson
Private _name As String
Public ReadOnly Property Name As String
Get
Return _name
End Get
End Property
Public Sub WorkOnName()
Dim txtInfo As TextInfo = _
Threading.Thread.CurrentThread.CurrentCulture.TextInfo
_name = txtInfo.ToTitleCase(_name)
End Sub
End Class
// ---------------
public class AnotherPerson
{
private string _name;
public string Name
{
get { return _name; }
}
public void WorkOnName()
{
TextInfo txtInfo = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo;
_name = txtInfo.ToTitleCase(_name);
}
}
তারা উভয় একই ফলাফল দেয়। এটি কি এমন পরিস্থিতি যেখানে কোনও সঠিক এবং ভুল নেই এবং এটি কেবল পছন্দের বিষয়?
public string Name { get; protected set; }
উত্তরাধিকার মাধ্যমে।