varস্থিতিশীল টাইপ করা হয় - সংকলক এবং রানটাইম টাইপগুলি জানেন - তারা কেবল আপনাকে কিছু টাইপ করে সংরক্ষণ করে ... নিম্নলিখিতটি 100% অভিন্ন:
var s = "abc";
Console.WriteLine(s.Length);
এবং
string s = "abc";
Console.WriteLine(s.Length);
যা ঘটেছিল তা হ'ল সংকলকটি বুঝতে পেরেছিল যে এটি sঅবশ্যই একটি স্ট্রিং হতে হবে (আরম্ভকারী থেকে)। উভয় ক্ষেত্রেই এটি (আইএল) জানে যার s.Lengthঅর্থ (উদাহরণ) string.Lengthসম্পত্তি।
dynamicএকটি খুব ভিন্ন প্রাণী; এটি সর্বাধিক অনুরূপ objectতবে গতিশীল প্রেরণের সাথে:
dynamic s = "abc";
Console.WriteLine(s.Length);
এখানে, গতিশীল হিসাবেs টাইপ করা হয় । এটা তোলে কথা কে না জানে string.Length, কারণ এটি জানে না, কিছু সম্পর্কে sসময় সঙ্কলন করেন। উদাহরণস্বরূপ, নিম্নলিখিতগুলিও সংকলন করবে (তবে চলবে না):
dynamic s = "abc";
Console.WriteLine(s.FlibbleBananaSnowball);
রানটাইম (শুধুমাত্র) এ, এটা হবে পরীক্ষা জন্য FlibbleBananaSnowballসম্পত্তি - এটা খুঁজে পেতে ব্যর্থ, এবং স্পার্ক একটি ঝরনা মধ্যে বিস্ফোরিত।
সহ dynamic, সম্পত্তি / পদ্ধতি / অপারেটর / ইত্যাদি রানটাইমগুলিতে প্রকৃত বস্তুর উপর ভিত্তি করে সমাধান করা হয় । সিওএম (যা কেবলমাত্র রানটাইমযুক্ত বৈশিষ্ট্য থাকতে পারে), ডিএলআর, বা অন্যান্য গতিশীল সিস্টেমগুলির সাথে কথা বলার জন্য খুব সহজ javascript।