Private Constructors: By declaring a private constructor in a class, you prevent other classes from creating instances of that class using theYes, it is possible to prevent object creation of a class in C# by using private constructors or static classes.
new
keyword. This approach is useful when you want to create a class that can't be instantiated directly, but it may still be used to contain static members or act as a base class for other classes.public class Singleton
{
private Singleton() { } // Private constructor
public static Singleton Instance { get; } = new Singleton();
}
In this example, the Singleton
class can only be instantiated within its own code due to the private constructor. Clients trying to create an instance of the Singleton
class will not be able to do so.
public static class Utility
{
public static void DoSomething() { }
}
The Utility
class in this example is static, and it can't be instantiated. You can call its static method DoSomething()
directly without creating an object of the class.
It's worth noting that if you try to add a constructor explicitly to a static class or make the constructor public, the C# compiler will raise an error.
Using private constructors or static classes allows you to control object creation and enforce design patterns such as the Singleton pattern, where only one instance of a class is allowed.
Object creation of a class can be prevented by:
- Abstract Class
- Private Class
- Static Class