To create an immutable class in c#, we have to do the following points:
1. Set accessors as private.
Now question is what are accessors ?
Accessors are nothing but are special method, and are used if they are public data members.
Accessors are commonly known as properties in term of programming language. A property is one or two more code blocks,representing two accessors get and set .Get accessor is used , when property is read, set accessor is used to set the new value of property.
Example of accessors in a class:
Class CsharpCorner
{
Public string MemberName
{
get{ return MemberName ;}
set{ MemberName = value;}
}
}
You make the class immutable by declaring the set accessor as private. However, when you declare a private set accessor , you cannot use an object initializer to initialize the property. You must use a constructor or a factory method.
2. When we declare a set accessor as private, then we can’t initialize it by using object. We must use constructor for that purpose.
Example
Class CsharpCorner
{
Public CsharpCorner (string name)
{
name = MemberName;
}
Public string MemberName
{
get{ return MemberName ;}
private set{ MemberName = value;}
}
}
Public class MainProgram
{
Public static void main()
{
String nameofMember = “Ashish”;
CsharpCorner csharp = new CsharpCorner(nameofMember);
}
}
Our Immutable class is ready, and by doing this we are not allowing compiler to access fields directly.
Thanks for now.