تفاوت ساختار ها (struct) و کلاس(class)

گاهی برنامه نویس باید صدها نمونه از یک شی رو در حافظه ذخیره کند که این کار با استفاده از کلاس یا ساختار(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 = 100000;

[Benchmark]
public void ListCalssTest()
{
var items = new List<PointClass>(length);
for (int i = 0; i < length; i++)
{
items.Add(new PointClass() { X = i, Y = i });
}
}

[Benchmark]
public void ListStructTest()
{
var items = new List<PointStruct>(length);
for (int i = 0; i < length; i++)
{
items.Add(new PointStruct() { X = i, Y = i });
}
}


همان طور از تصویر پیداست ساختار ها سرعت بیشتری دارند

نکته:

ساختار value type است، بنابراین سریع تر از یک کلاس است. از ساختارها در مواردی که می خواهید تنها یک داده را ذخیره کنید استفاده کنید