Это зависит от того, что вы пытаетесь выполнить, и от того, какие конкретные значения имеют , которые будут установлены по какой-то причине при создании объекта.
Если вы хотите, чтобы значения удерживались толькочтобы быть установленным на конструкцию, вы должны объявить класс так, как вы это сделали:
class Person
{
public string FirstName { get; private set; }
public string Surname { get; private set; }
public Person(string firstName, string surname)
{
// properties are read-only so must be set as part of the constructor
this.FirstName = firstName;
this.Surname = surname;
}
}
Если есть какое-то требование, чтобы свойства были установлены на конструкцию, то вы также должны определить класс, как вы это сделали.Однако вы также можете сделать возможным изменение этих значений позже.
class Person
{
public string FirstName { get; set; }
public string Surname { get; set; }
public Person(string firstName, string surname)
{
this.FirstName = firstName;
this.Surname = surname;
}
}
Если свойства могут быть установлены в любое время, то есть необязательно, установлены ли они при создании, тогда вам не нужнопередать их как часть конструктора.
class Person
{
public string FirstName { get; set; }
public string Surname { get; set; }
public Person()
{
}
}
В C # (от 3 и выше) вы все равно можете установить эти свойства во время создания, но я не уверен, какие функции есть в других языках, которые могут отражать это:
var myPerson = new Person
{
FirstName = "Test",
Surname = "Test2",
};
Все примеры приведены на C #, но в целом должны содержать значение ООП.