Now in this post, We will learn about the static constructor with examples in C#.
C# Static Constructor
A static constructor is a special kind of constructor that invokes automatically before the first instance of a class is created. It is used to initialize only static data members of the class or to write the code that needs to be executed only once throughout the execution of the program.
The purpose of using a static constructor is to trigger a piece of code automatically without creating an object of a class.
Static Constructor Syntax
public class Customer
// Static Constructor
In the above code syntax, a static constructor is created without any parameter and access modifier.
In C#, Constructors are special types of methods that get executed when an instance of the classor structis created.
The main use of the constructor is to initialize and set the default values for the data members of the new object. It looks very similar to a method, but with no return type and have the same name as the class or struct.
A constructor is invoked when we use the new operator or the reflection (Example: Activator.CreateInstance) to create an object of a class.
If we forget to define the default constructor in a class, the compiler will automatically create one system-defined default constructor for that class.
C# Constructor Syntax
Syntax to create a constructor in C#
In the above example, we have created constructor “User” with the same name as class or struct.
In this article, we will discuss about the keywords const, read-only, static and static-read-only in details.
Static in C#
In C#, static is a keyword that can be applied to classes, variables, methods, properties, constructorand events.
The static modifier is useful to create a single copy of an object (class or data members) to share common data among all the instances. The static modifier makes a class or data member non-instantiable, that means if we mark a class as static it will not allow us to create an object using the new operator. A class member declared as static can be accessed directly by its class name.
In C# the static keyword is used to define static members which are common to all the objects and not bound to any specific object.
Static variable memory allocation
In C#, Static and constant data exist for the lifetime of the application, therefore they stored in a high frequency heap and can’t be garbage collected. A high frequency heap is a kind of loader heap that exists for each AppDomain where all the static data are stored.
In C#, Stringis a keyword that is used to hold the text value. It is an object of System.String type.
String is immutable (unchangeable), the value once assigned to a String object cannot be modified after its creation.
If we try to change the value of the String object, it will create a new instance in a different memory location with the modified value. In C#, a string is a series of characters that is used to represent text.
String memory allocation
Following is the pictorial representation of memory allocation for the string.