int number = 5;
string text = "Hello World";
List list = new List();
//در این روش احتمال خطا کاهش می یابد
Var :
نوع آن در زمان کامپایل مشخص میشود و پس از تعیین نوع این نوع نمیتواند تغییر بکند
var number = 5;
var text = "Hello World";
var list = new List();
Dynamic:
نوع آن در زمان اجرا (RunTime) مشخص میشود و در طول این زمان میتواند تغییر کند و نوعش آخرین مقدار هرچیزی باشه همان است(value type هست ،ذخیره در استک)
dynamic number = 5; number = "Hello World";
Object :
میتواند هر نوع دادهای را نگه دارد ولی نیاز به تبدیل نوع (type casting) دارد تا از آن به نوع مورد نظر استفاده کنیم و شبیه Dynamic است.(ولی refrence type هست ،ذخیره در هیپ)
object number = 5;
object text = "Hello World";
int num = (int)number; // تبدیل نوع به int
string str = (string)text; // تبدیل نوع به string
Const و Readonly:
برای تعریف متغیرهایی استفاده میشوند که مقدار آنها تغییر نمیکند.const برای مقادیر ثابت زمان کامپایل و readonly برای مقادیر ثابت زمان اجرا استفاده میشود.
مزیت:افزایش ایمنی نوع و کاهش خطاها و خوانایی کد
const int MaxValue = 100; //مقدار دهی زمان کامپایل
public class MyClass
{
public readonly int MaxValue;
public MyClass(int maxValue) //مقدار دهی زمان اجرا در سازنده
{
MaxValue = maxValue;
}
}
Tuple / ValueTuple:
میتواند چندین مقدار با انواع مختلف را به صورت گروهی نگه دارد.
ValueTuple نسخهای بهبود یافته از Tuple است
// tuple example
var tuple = Tuple.Create(1, "Hello", true);
int number = tuple.Item1;
string text = tuple.Item2;
bool flag = tuple.Item3;
//valueTuple example
var valueTuple = (number: 1, text: "Hello", flag: true);
int number = valueTuple.number;
string text = valueTuple.text;
bool flag = valueTuple.flag;
انواع روش برای تعریف متغییر و تعیین نوع آنها:
Explicit Type(نوع صریح ):
int number = 5; string text = "Hello World"; List list = new List();
//در این روش احتمال خطا کاهش می یابد
Var :
var number = 5;();
var text = "Hello World"; var list = new List
Dynamic:
dynamic number = 5;
number = "Hello World";
Object :
object number = 5; object text = "Hello World";
int num = (int)number; // تبدیل نوع به int string str = (string)text; // تبدیل نوع به string
Const و Readonly:
const int MaxValue = 100; //مقدار دهی زمان کامپایل
public class MyClass {
}
Tuple / ValueTuple:
// tuple example var tuple = Tuple.Create(1, "Hello", true);
int number = tuple.Item1; string text = tuple.Item2; bool flag = tuple.Item3;
//valueTuple example var valueTuple = (number: 1, text: "Hello", flag: true);
int number = valueTuple.number; string text = valueTuple.text; bool flag = valueTuple.flag;