نوع استنباطی (Type Inference)

نوع استنباطی، به متغیر اجازه می‌دهد که حدس بزند چه نوع داده‌ای به آن اختصاص داده شده است. برای ایجاد انواع استنباطی در سی شارپ از کلمه کلیدی var استفاده می‌شود.

var myInt = 10;
var myDouble = 5.67;
var myString = "Hello";

سه متغیر بالا انواع ضمنی هستند. بدین معنی که، نوع آنها به بسته به مقادیری که به آنها اختصاص داده می‌شود به صورت اتوماتیک تغییر می‌کند (مشخص می‌شود). برای مشخص کردن نوع یک متغیر می‌توان به سادگی از کلمه کلیدی var استفاده کرد. حتی می‌توان برای ذخیره نوع object هم از این کلمه کلیدی استفاده نمود.

var sample = new SampleClass();

این کلمه کلیدی را می تون برای آرایه‌ها نیز به کار برد :

var myArray = new int [] { 1, 2, 3 };

//OR

var myArray = new [] { 1, 2, 3 };

به این نکته توجه کنید که شما می‌توانید بدون ذکر نوع یک متغیر به صورت صریح (مثلاً int myInt)، از کلمه کلیدی var استفاده نمایید، که در نتیجه این کار، نوع متغیر بسته به نوع مقداری که به آن اختصاص داده می‌شود تعیین گردد. از آنجاییکه نوع متغیر بسته به نوع مقداری که به آن اختصاص داده می‌شود تعیین می‌شود، نمی‌توان از متغیری که به آن هیچ مقداری نداده‌ایم همراه با کلمه کلیدی var استفاده کنیم. مثلاً کد زیر کامپایل نمی‌شود چون هیچ مقداری به متغیر اختصاص داده نشده است.

var someVariable;

به عنوان آخرین نکته، کلمه کلیدی var برای تعیین نوع (متغیرهای محلی) به کار می‌رود و نمی‌توان از آن به جای نوع برگشتی و نوع پارامترهای یک متد استفاده نمود.