Below are some differences between struct and class in C#
- classes are reference types where as struct are value types.
- Null value cannot be assigned to the Struct because it is a non-nullable value type . Whereas the object of a class can be assigned a null value.
- Classes support inheritance but the struct doesn’t.
- struct cannot have destructor but a class can have.
- struct is stored on stack where as objects instantiated for a class are stored in heap.
- struct cannot have field initializers where as class can have.
- You should use the new keyword to initiate the class but for struct it is an option.
- The access modifiers of a struct cannot be protected or protected internal.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { public class Employee { public string Name { get; set; } } struct Student { // Field initializers are not allowed in strcut //int i = 1; public string Name { get; set; } } class Program { static void Main(string[] args) { Employee emp = new Employee(); emp.Name = "Abundant Code"; Student stu = new Student(); stu.Name = "Abundant Code"; // Cannot assign null value to stu //stu = null; emp = null; } } }
Leave a Reply