1. Classes are reference types and structs are value types. So in other words class will be allocated on a heap and structs will be allocted on the stack.
2. You cannot have instance Field initializers in structs. Example
class MyClass1
{
int myVar =10; // no syntax error.
public void MyFun(
)
{
// statements
}
}
struct MyStruct1
{
int myVar = 10; // syntax error.
public void MyFun(
)
{
// statements
}
}
3. Classes can have explicit parameterless constructors. But structs cannot have
4. Classes must be instantiated using the new operator. But structs can be
5. Classes support inheritance.But there is no inheritance for structs.( structs don’t support inheritance polymorphism )
6. Since struct does not support inheritance, access modifier of a member of a struct cannot be protected or protected internal.11. A class is permitted to declare a destructor.But a struct is not
7. classes are used for complex and large set data. structs are for simple data structures.
Regards,
Asked In: Many Interviews |
Alert Moderator