سعید صفایی | SAEED SAFAEE
(Class vs Struct)مقایسه ساختار ها و کلاس ها
(Class vs Struct)مقایسه ساختار ها و کلاس ها
گاهی برنامه نویس باید صدها نمونه از یک شی رو در حافظه ذخیره کند که این کار با استفاده از کلاس یا ساختار قابل حل است
ساختار:
یک ساختار فقط داده را شامل می شود و برخلاف کلاس، فاقد توابع است*
برای دسترس عمومی تعریف میشود**
اصلا نمیتواند ارث بری کند***
مثال کاربردی :
public class PointClass
{
public int X { get; set; }
public int Y { get; set; }
}
public struct PointStruct
{
public int X { get; set; }
public int Y { get; set; }
}
public class StructWithClassTest
{
const int length = ۱۰۰۰۰۰;
[Benchmark]
public void ListCalssTest()
{
var items = new List<PointClass>(length);
for (int i = ۰; i < length; i++)
{
items.Add(new PointClass() { X = i, Y = i });
}
}
[Benchmark]
public void ListStructTest()
{
var items = new List<PointStruct>(length);
for (int i = ۰; i < length; i++)
{
items.Add(new PointStruct() { X = i, Y = i });
}
}
در این مثال ساختار ها سه برار سریعتر هستند
نکته:
ساختار از نوع رفرنس نیست، از ساختارها در مواردی که می خواهید تنها یک داده را ذخیره کنید استفاده کنید