Copy Constructor in C#


In my previous post, I have explained about the Default constructorParameterized constructor, Static constructor and Private Constructor.

Now in this post, I’ll explain in details about the copy constructor with example.

Copy Constructor in C#

C# does not provide a copy constructor for the objects but as a developer, we can write one by ourselves based on our requirement.

Copy constructor: In C#, A parameterized constructor that takes the same type of object as a parameter is called a copy constructor.

The copy constructor is useful when we want to copy data from the existing object to the new object without affecting the values of the existing object.
In simple words, copy constructor means cloning of data from one object to the other object.

Note: To create a copy constructor we must have more than one constructor in a class.

Continue reading “Copy Constructor in C#”

Static Constructor in C# with Examples


In the previous post, We have discussed about the Default constructor, Parameterized constructor, and Copy constructor.

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

In the below sample program, a static constructor is created without any parameter and access modifier.

Continue reading “Static Constructor in C# with Examples”

Constructors in C# with Examples

What is a Constructor in C#?

In C#, Constructors are special types of methods that get executed when an instance of the class or struct is 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#

constructor syntax

In the above example, we have created constructor “User” with the same name as class or struct.

Continue reading “Constructors in C# with Examples”

Difference Between Const, static, ReadOnly and Static ReadOnly variables in C#


In this article, we will discuss the const, readonly, static, and static readonly keywords in detail.

C# static keyword

In C#,  static  is a keyword that can be applied to classes, variables, methods, properties, constructor and 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.

The static keyword in C# is used to define static members which are common to all the objects and not bound to any specific object.

Static variable memory allocation

Static variable in C#
Static variable memory allocation in high-frequency heap

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.

Continue reading “Difference Between Const, static, ReadOnly and Static ReadOnly variables in C#”

Difference between Ref and Out keywords in C#


In C# ref and out keywords are basically used to pass arguments as a reference within a method.

The  out  keyword is generally used when we want a method to return multiple values.

With the  ref  keyword, we have the choice to not make changes to the parameter inside the called method. Whereas using the  out  keyword, we must initialize the parameter inside the called method.


c# ref keyword

The ref keyword in C# is used to pass an argument as a reference. That means any changes to the variable value inside the method will get reflected in the original variable in the calling method.

In C# ref keyword returns the address of the variable rather than the value.

C# passing parameter by reference

In the following example, we are passing a value type parameter to a method by using ref keyword.

Continue reading “Difference between Ref and Out keywords in C#”