দ্রষ্টব্য: যখন আমি সি # শুরু করছিলাম তখন এটি পোস্ট করা হয়েছিল। ২০১৪ জ্ঞানের সাথে আমি সত্যই বলতে পারি যে সি # ভাষার ক্ষেত্রে সেরা জিনিসগুলির মধ্যে স্বয়ংক্রিয় বৈশিষ্ট্যগুলি অন্যতম।
আমি ব্যক্তিগত এবং একটি সর্বজনীন ক্ষেত্র ব্যবহার করে সি # তে আমার সম্পত্তি তৈরি করতে ব্যবহৃত হচ্ছে:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
এখনই .NET 3.0 দিয়ে আমরা স্বতঃ-বৈশিষ্ট্য পেয়েছি:
public string Title { get; set; }
আমি জানি এটি আরও একটি দার্শনিক / বিষয়গত প্রশ্ন, তবে প্রতিটি ক্ষেত্রের জন্য পাঁচটি লাইন কোড সংরক্ষণ করা ছাড়া এই স্বয়ংক্রিয় বৈশিষ্ট্যগুলি ব্যবহার করার কোনও কারণ আছে কি? আমার ব্যক্তিগত গ্রিপ হ'ল এই বৈশিষ্ট্যগুলি আমার কাছ থেকে জিনিসগুলি গোপন করে এবং আমি কালো জাদুতে কোনও বড় অনুরাগী নই।
প্রকৃতপক্ষে, লুকানো ব্যক্তিগত ক্ষেত্র এমনকি ডিবাগারেও প্রদর্শিত হয় না, যা প্রাপ্তি / সেট কার্যগুলি কিছুই করে না এই সত্যটি দেওয়া ঠিক আছে। তবে যখন আমি আসলে কিছু গেটর / সেটার যুক্তি বাস্তবায়ন করতে চাই তখন আমাকে প্রাইভেট / পাবলিক জুড়িটি যাইহোক ব্যবহার করতে হবে।
আমি সুবিধাটি দেখতে পাচ্ছি যে পরে গিটার / সেটার যুক্তি পরিবর্তন করার ক্ষমতা না হারিয়ে আমি প্রচুর কোড (এক বনাম ছয় লাইনের) সংরক্ষণ করি তবে আবার আমি ইতিমধ্যে কেবলমাত্র একটি পাবলিক ফিল্ডটিকে "পাবলিক স্ট্রিং শিরোনাম" না করে ঘোষণা করতে পারি the পেতে প্রয়োজন; সেট; } ব্লক করুন, এভাবে আরও কোড সংরক্ষণ করা saving
তো, আমি এখানে কী মিস করছি? কেন কেউ আসলে অটো-প্রোপার্টি ব্যবহার করতে চাইবে?