আমি এখনই একটি সি # ক্লাস নিচ্ছি এবং আমি কাজ করার সর্বোত্তম উপায়টি সন্ধান করার চেষ্টা করছি। আমি জাভা ব্যাকগ্রাউন্ড থেকে এসেছি এবং তাই আমি কেবল জাভা সেরা-অনুশীলনের সাথে পরিচিত; আমি সি # নবাগত!
জাভাতে যদি আমার ব্যক্তিগত সম্পত্তি থাকে তবে আমি এটি করি;
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? ডেডিকেটেড সেটার এবং গেটর পদ্ধতি (সম্পর্কিত প্রসেসিং এবং বৈধতা যুক্তির সাথে) থাকার কারণে কেন আমি এটি করব / করব।