سعید صفایی | SAEED SAFAEE

(Class vs Struct)مقایسه ساختار ها و کلاس ها

سعید صفایی دیدگاه
(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 });
    }
}

در این مثال ساختار ها سه برار سریعتر هستند

نکته:
ساختار از نوع رفرنس نیست،  از ساختارها در مواردی که می خواهید تنها یک داده را ذخیره کنید استفاده کنید




دیدگاه خود را بگذارید