soheil moonesi
soheil moonesi
خواندن ۲ دقیقه·۹ ماه پیش

C# Struct

  • The difference between struct and class in C# have significant implications for data representation and performance.
  • Structs, being value types, offer stack allocation, making them efficient for small, lightweight data, while classes, as reference types, provide more versatility and support complex behaviors but utilize heap allocation.
  • Structs are copied by value, ensuring independence between instances, whereas classes are copied by reference, leading to shared data instances. Structs lack support for inheritance, limiting their use to simple data structures, while classes facilitate inheritance and enable the creation of complex object hierarchies.
  • The decision to use structs or classes depends on the specific requirements of data representation, memory management, and performance optimization in C# programming.
  • تفاوت کلاس و struct در representation and performance هستش.
  • خوب struct ها از نوع value type ها هستند و فضایی که بهشون اختصاص داده میشه در stack هستش و برای دیتا ها کوچک خیلی به صرفه است ولی از اونطرف کلاس ها از نوع refrence type ها هستن و فضایی که بهشون اختصاص داده میشه زیاده و در heap ذخیره میشن ولی امکاناتی که بهمون میدن خیلی زیاده.
  • و این که struct ها مقدار یا همون Value رو کپی میکنن و همین باعث میشه تمام دیتا ها از هم مستقل باشن و هیچ وابستگی به هم نداشته باشن. از struct ها نمیشه ارث بری کرد برای همین توی data structure استفاده شون محدود میشه ولی کلاس ها با قابلیت ارث بری که دارن این کار رو برای ما به خوبی انجام میدن
  • تصمیم انتخاب این که از struct استفاده کنیم یا class مبنی بر data representation ، مدیریت حافظه و بهینه سازی در اجرای کد هستش.

خوب حالا میرسیم به مثال struct که کدش رو این پایین گذاشتم :

مرجع کد: سایت

using System; namespace CsharpStruct { // dfining struct struct Employee { public string name; } class Program { static void Main(string[] args) { Employee emp1 = new Employee(); emp1.name = &quotJohn&quot // assign emp1 to emp2 Employee emp2 = emp1; emp2.name = &quotEd&quot Console.WriteLine(&quotEmployee1 name: &quot + emp1.name); Console.ReadLine() } } }

Output

Employee1 name: John

خوب همونطوری که میبنید struct دقیقا مثل value type ها عمل میکنه

structdata representationtype ‌هابهینه سازی
C# enthusiast
شاید از این پست‌ها خوشتان بیاید