| Structure | Class |
| Structures are value type, i.e. variable of struct type directly contain the data of structure | Classes are reference type, i.e variable of class (known as object) contain the reference to data. |
| Do not require, urgently, new operator to do its instantiation. Or instantiation can be done without new operator. | Do require new operator to do instantiation. |
| Each variable will have its own set of data even if they have same values. | More than one object can have reference to same data. |
| Default Value of a struct type can’t be null. | Default value of an Object of a class type is null. |
| | |
| All struct types are implicitly inherited from class System.ValueType | All class types are implicitly inherited from System.Object class. |
| Struct type do not support inheritance. | Class types support inheritance. |
| Struct types are implicitly sealed. | Class types are implicitly internal. |
| Protected, sealed, protected Internal, abstract access modifiers are not valid for members of structure. It support only public, private and internal. | It supports all modifiers for its members. |
| A structure does not allow parameter less constructor declaration. | It allows declaration of parameter less constructor. |
| It doesn’t allow the declaration of destructor inside. | It allows declaration of destructor inside. |
| Struct can not be inherited from a class or struct. | Class can be inherited from a class or struct. |
| By default members are public. | By default members are private. |
| Structure use stack for storage. | Class use heap for storage. |
| Garbage collection does not operate on structure. | Garbage collection operates on class. |
No comments:
Post a Comment