Senior back-end developer | ProjectManager
تفاوت ساختار ها (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 است، بنابراین سریع تر از یک کلاس است. از ساختارها در مواردی که می خواهید تنها یک داده را ذخیره کنید استفاده کنید
مطلبی دیگر از این انتشارات
چگونه یک رادار درست کنیم!
مطلبی دیگر از این انتشارات
یک دیباگر جالب در پایتون
مطلبی دیگر از این انتشارات
۵ زمینه کاری برای کسب درآمد از برنامه نویسی پایتون