সুতরাং আমরা লিখি:
Customer c = new Customer();
ডিজাইনটি কেন এমন নয় যে আমরা লিখি:
c = new Customer();
c.CreditLimit = 1000;
সংকলকটি গ্রাহকের প্রতি সি পয়েন্টগুলি নিয়ে কাজ করতে পারে এবং গ্রাহকের সদস্যদের সি-তে প্রবেশ করার অনুমতি দেয়?
আমি জানি আমরা লিখতে চাই:
IPerson c = new Customer();
IPerson e = new Employee();
যাতে লিখতে সক্ষম হতে:
public string GetName(IPerson object)
{
return object.Name
}
string name = GetName(c); // or GetName(e);
তবে আমরা যদি লিখেছি:
c = new Customer();
e = new Employee();
আমরা এখনও লিখতে পারি:
public string GetName(object)
{
return object.Name
}
string name = GetName(c); // or GetName(e);
সংকলকটি উপরের কোডটির সাথে সাথে অভিযোগ করতে পারে যদি অবজেক্ট সি রেফারেন্সের ধরণটি কোনও নাম সম্পত্তি সমর্থন করে না (কারণ এটি পদ্ধতিটির মধ্যে আর্গুমেন্ট / প্যারামিটারে কোন সদস্য ব্যবহৃত হয় তা পরীক্ষা করতে পারে), বা রানটাইম অভিযোগ করতে পারে।
এমনকি সি # এর গতিশীল কীওয়ার্ড সহ, আমরা এখনও একটি চলক 'টাইপ' (রানটাইম নির্ধারিত) ব্যবহার করছি। তবে কেন একটি ভেরিয়েবলের কোনও প্রকারের প্রয়োজন হয়? আমি নিশ্চিত যে এখানে অবশ্যই একটি ভাল কারণ থাকতে হবে, তবে আমি এটি সম্পর্কে ভাবতে পারি না!
var
সি # তে ব্যবহার করতে পারেন এবং কোথায় আপনি ভেরিয়েবল ঘোষণা করতে চান তা সম্পর্কে সুনির্দিষ্ট হওয়া ভাল।