Я новичок в программировании, может кто-то объяснить мне разницу между конструктором и свойством в контексте C#. , так как оба используются для инициализации полей вашего класса, &, и какой из них выбрать в данной ситуации.Разница между конструктором и свойствами в C#
ответ
Кроме того, все технические вещи, хорошее правило заключается в том, чтобы использовать параметры конструктора обязательных вещей, свойств для дополнительных вещей.
Вы можете игнорировать свойства (следовательно, необязательно), но вы не можете игнорировать параметры конструктора (следовательно, обязательно).
Для всего остального, я бы рекомендовал чтение C# начинающих книгу или учебник ;-)
Свойство - это просто член класса, который может быть инициализирован когда-либо.
Как так:
var myClass = new MyClass();
myClass.PropertyA = "foo";
myClass.PropertyB = "bar";
Конструктор запускается, когда создается класс и может делать различные вещи. В вашем «сценарии» он, вероятно, будет использоваться для инициализации членов, чтобы класс находился в правильном состоянии при создании.
Как так:
var myClass = new MyClass("foo", "bar");
Конструктор это особый тип метода из класса, чтобы создать сам объект. Вы должны использовать его для инициализации всего необходимого, чтобы объект работал должным образом.
От MSND Constructor:
Когда создается класс или структура, его конструктор вызывается. Конструкторы имеют то же имя, что и класс или структура, и они обычно инициализируют элементы данных нового объекта.
Свойства включить класс для хранения, настройки и выставить необходимые значения для объекта. Вы должны создать, чтобы помочь в поведении для класса.
От MSND Property:
Свойство является элементом, который обеспечивает гибкий механизм для чтения, записи , или вычислить значение частного поля. Свойства могут быть использованы , как если бы они были публичными элементами данных, но они на самом деле являются специальными методами, называемыми аксессорами. Это позволяет легко получить доступ к данным, и по-прежнему помогает повысить безопасность и гибкость методов.
Пример:
public class Time
{
//
// { get; set; } Using this, the compiler will create automatically
// the body to get and set.
//
public int Hour { get; set; } // Propertie that defines hour
public int Minute { get; set; } // Propertie that defines minute
public int Second { get; set; } // Propertie that defines seconds
//
// Default Constructor from the class Time, Initialize
// each propertie with a default value
// Default constructors doesn't have any parameter
//
public Time()
{
Hour = 0;
Minute = 0;
Second = 0;
}
//
// Parametrized Constructor from the class Time, Initialize
// each propertie with given values
//
public Time(int hour, int Minute, int second)
{
Hour = hour;
Minute = minute;
Second = second;
}
}
свойства должны быть использованы для проверки значения, переданные, а также, для Exemple:
public int Hour
{
//Return the value for hour
get
{
return _hour;
}
set
{
//Prevent the user to set the value less than 0
if(value > 0)
_hour = 0;
else
throw new Exception("Value shoud be greater than 0");
}
private int _hour;
Hopes это поможет вам понять! Для получения дополнительной информации о C# посмотрите на Object-Oriented Programming (C# and Visual Basic).
http://stackoverflow.com/questions/863045/what-is-the-preferred-way-of-constructing-objects-in-c-constructor-parameters – slavoo
Это совершенно разные вещи. – Tyler
Вы пытались посмотреть учебники и другие темы об этом? – Arran