আমি এখনই একটি সি # ক্লাস নিচ্ছি এবং আমি কাজ করার সর্বোত্তম উপায়টি সন্ধান করার চেষ্টা করছি। আমি জাভা ব্যাকগ্রাউন্ড থেকে এসেছি এবং তাই আমি কেবল জাভা সেরা-অনুশীলনের সাথে পরিচিত; আমি সি # নবাগত!
জাভাতে যদি আমার ব্যক্তিগত সম্পত্তি থাকে তবে আমি এটি করি;
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
সি # তে, আমি দেখতে পাচ্ছি যে এটি করার অনেকগুলি উপায় রয়েছে।
আমি জাভা এর মত এটি করতে পারি:
private string name;
public void setName(string name) {
this.name = name;
}
public string getName() {
return this.name;
}
বা আমি এটি এইভাবে করতে পারি:
private string name;
public string Name {
get { return name; }
set { name = value; }
}
বা:
public string Name { get; set; }
আমার কোনটি ব্যবহার করা উচিত এবং প্রতিটি পদ্ধতির সাথে জড়িত সাবধানতা বা সূক্ষ্মতাগুলি কী কী? ক্লাস তৈরি করার সময়, আমি জাভা (বিশেষত কার্যকর জাভা পড়া) থেকে আমার জানার সাধারণ সেরা-অনুশীলনগুলি অনুসরণ করছি। সুতরাং উদাহরণস্বরূপ, আমি অপরিবর্তনীয়তার পক্ষে করছি (কেবলমাত্র যখন প্রয়োজন তখন সেটার সরবরাহ করা হয়)। আমি কেবল কৌতূহল বোধ করি যে সি # তে সেটার এবং গেটার সরবরাহের বিভিন্ন পদ্ধতির সাথে এই অনুশীলনগুলি কীভাবে খাপ খায়; মূলত, আমি কীভাবে জাভা বিশ্ব থেকে সেরা # অনুশীলনগুলিকে সি # তে অনুবাদ করব?
সম্পাদনা
জন স্কিটির উত্তরের মন্তব্য হিসাবে আমি এটি পোস্ট করছিলাম তবে এটি দীর্ঘ হয়ে গেল:
অ-তুচ্ছ সম্পত্তি সম্পর্কে (যেমন, সম্ভবত উল্লেখযোগ্য প্রক্রিয়াজাতকরণ এবং বৈধতা সহ)? আমি কি এখনও এটি কোনও সরকারী সম্পত্তির মাধ্যমে প্রকাশ করতে পারি কিন্তু যুক্তিটি ইনপ্যাপুলেটেড get
এবং দিয়ে দিয়ে set
? ডেডিকেটেড সেটার এবং গেটর পদ্ধতি (সম্পর্কিত প্রসেসিং এবং বৈধতা যুক্তির সাথে) থাকার কারণে কেন আমি এটি করব / করব।