PDA

View Full Version : سوال: چرا structure درحاليكه class هست ؟



dr_csharp
یک شنبه 26 خرداد 1387, 08:47 صبح
سلام
آیا Class همواره Structure رو پوشش نمیده ،اگه پاسخ مثبته پس چرا structure داریم، درغیراینصورت کی و چرا از Structure استفاده میکنیم ؟ ( اگه مثال مطرح بشه بهتره )

sinpin
یک شنبه 26 خرداد 1387, 09:41 صبح
يكي از دلايل استفاده از sructure سبكي و سريعتر بودن اون نسبت به كلاس است. چون از نوع value type است در حاليكه كه كلاس از نوع reference type ميباشد كه سربار بيشتري دارد.
براي مطالعه بيشتر به اين تاپيك مراجعه كنيد :
http://barnamenevis.org/forum/showthread.php?t=107623

صابر
یک شنبه 26 خرداد 1387, 09:50 صبح
structure‌ برخلاق class به جای heap توی stack ذخیره می‌شه.
طبق گفته کتاب Microsoft .NET Framework 2.0 - Application Development Foundation:


While the functionality is similar, structures are usually more efficient than classes.
You should define a structure, rather than a class, if the type will perform better as a
value type than a reference type. Specifically, structure types should meet all of these
criteria:
■ Logically represents a single value
■ Has an instance size less than 16 bytes
■ Will not be changed after creation
■ Will not be cast to a reference type

gdevnb
یک شنبه 26 خرداد 1387, 10:02 صبح
فرایند تخصیص و آزاد سازی حافظه در value type ها سریعتر از reference type صورت میگیره در نتیجه سربار و هزینه کمتری داره.

ASKaffash
یک شنبه 26 خرداد 1387, 12:30 عصر
سلام
دوست عزیز تمام داده های شما Structure است وباید باشد چون باید ByValue باشند درغیراینصورت در کد ذیل چه میشود؟!


int i = 0, j = 0;
i = 10;
j = i;
i = 15;

x125x125
یک شنبه 26 خرداد 1387, 12:52 عصر
براي نياز به فيلد هاي استراكت نياز به New كردن نيست چون اصلا ارجاعي نيست اما كلاس ارجاعي است.