Использование либо зависит от требования.
Если вы хотите, чтобы ваш объект класса имел некоторое состояние (назначенные свойства) во время создания экземпляра, то используйте параметризованный конструктор. Если у вашего класса нет конструктора по умолчанию (без параметров), то пользователю не будет возможности создавать экземпляр класса без какого-либо состояния.
По умолчанию каждый класс будет иметь конструктор по умолчанию (без какого-либо параметра), но как только вы определите параметризованный конструктор, конструктор по умолчанию не будет создан, если вы не укажете явно.
Представьте себе, если у вас есть как класс:
public class ClassName
{
public int ID { get; set; }
public string Name { get; set; }
public ClassName(int id, string name)
{
ID = id;
Name = name;
}
}
Поскольку вы предоставили параметризованный конструктор, пользователь не может создать экземпляр объекта без прохождения ID
и Name
значения. (без учета отражения)
ClassName obj = new ClassName(); //This will error out
Это полезно в ситуациях, когда он является обязательным для объекта, чтобы иметь некоторые значения в момент создания экземпляра.
Рассмотрите DirectoryInfo
класс предоставленный.Net Framework, вы не можете создать экземпляр объекта DirectoryInfo
без параметра
DirectoryInfo dirInfo = new DirectoryInfo();//This will error out
DirectoryInfo
Поскольку требуется объект, чтобы иметь путь, указывающий на каталог, было бы не использовать без пути, поэтому она снабжена только параметризованным конструктор
DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Somefolder");