আমার দুটি readonly int
ক্ষেত্র সহ একটি ক্লাস আছে । এগুলি সম্পত্তি হিসাবে প্রকাশিত হয়:
public class Thing
{
private readonly int _foo, _bar;
/// <summary> I AM IMMUTABLE. </summary>
public Thing(int foo, int bar)
{
_foo = foo;
_bar = bar;
}
public int Foo { get { return _foo; } set { } }
public int Bar { get { return _bar; } set { } }
}
তবে এর অর্থ এই যে নিচেরটি পুরোপুরি আইনী কোড:
Thing iThoughtThisWasMutable = new Thing(1, 42);
iThoughtThisWasMutable.Foo = 99; // <-- Poor, mistaken developer.
// He surely has bugs now. :-(
যে বাগগুলি কাজ করবে তা ধরে নেওয়ার ফলে যে বাগগুলি আসবে তা নিশ্চয়ই ছদ্মবেশী। অবশ্যই, ভুল বিকাশকারীদের ডক্সগুলি পড়া উচিত ছিল। তবে এটি এই সত্যটি পরিবর্তন করে না যে কোনও সংকলন-বা রান-টাইম ত্রুটি তাকে সমস্যার বিষয়ে সতর্ক করেছিল।
Thing
ক্লাসটি কীভাবে পরিবর্তন করা উচিত যাতে ডেভস উপরোক্ত ভুল করার সম্ভাবনা কম করে?
ব্যতিক্রম ছুঁড়ে? কোনও সম্পত্তির পরিবর্তে একটি গেটর পদ্ধতি ব্যবহার করবেন?
Interfaces
। আমি নিশ্চিত না যে আমি যা করছি