আমি এটিকে আরও একধাপ এগিয়ে নিয়ে যাব এবং 3 টি ক্ষেত্রে আনব। যদিও প্রতিটিতে ভিন্নতা রয়েছে, আমি সি # প্রোগ্রামিংয়ের সময় বেশিরভাগ সময় ব্যবহার করি এই নিয়ম।
2 এবং 3 ক্ষেত্রে সর্বদা সম্পত্তি অ্যাকসেসরে যান (ক্ষেত্রের পরিবর্তনশীল নয়)। এবং 1 এর ক্ষেত্রে, আপনি এই পছন্দটি করা থেকেও রক্ষা পেয়েছেন।
১) অপরিবর্তনীয় সম্পত্তি (নির্মানকারীকে দেওয়া হয়েছে, বা নির্মাণের সময় তৈরি করা হয়েছে)। এই ক্ষেত্রে, আমি কেবলমাত্র পঠনযোগ্য সম্পত্তি সহ একটি ফিল্ড ভেরিয়েবল ব্যবহার করি। আমি এটি একটি বেসরকারী সেটারের তুলনায় বেছে নিই, যেহেতু একটি প্রাইভেট সেটার অপরিবর্তনের গ্যারান্টি দেয় না।
public class Abc
{
private readonly int foo;
public Abc(int fooToUse){
foo = fooToUse;
}
public int Foo { get{ return foo; } }
}
২) পোকো ভেরিয়েবল। একটি সাধারণ ভেরিয়েবল যা কোনও পাবলিক / প্রাইভেট স্কোপ / এ সেট করতে পারে। এই ক্ষেত্রে আমি কেবল একটি স্বয়ংক্রিয় সম্পত্তি ব্যবহার করব।
public class Abc
{
public int Foo {get; set;}
}
৩) ভিউমোডেল বাইন্ডিং বৈশিষ্ট্য। INOTifyPropertyChanged সমর্থনকারী ক্লাসগুলির জন্য, আমার মনে হয় আপনার একটি বেসরকারী, ব্যাকিং ফিল্ড ভেরিয়েবল দরকার।
public class Abc : INotifyPropertyChanged
{
private int foo;
public int Foo
{
get { return foo; }
set { foo = value; OnPropertyChanged("foo"); }
}
}