В Java у меня может быть такой объект:
public class MyObject {
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public void setDate(String date) {
this.date = parseDateString(date);
}
private Date parseDateString(String date) {
// do magic here
return dateObj;
}
}
Это хорошо, потому что у меня есть один getter для моих свойств и несколько настроек. Я могу установить свойство "date", передав либо объект Date, либо String, и дайте классу понять его.
В С# это похоже на то, что все немного отличается. Я могу это сделать:
public class MyObject
{
public DateTime Date { get; set; }
}
Сокращение здесь очевидно оптимально. Тем не менее, я не уверен, есть ли встроенный способ перегрузить setter для приема нескольких типов. Я понимаю, что могу создать отдельный публичный метод для установки значения, но это принесет жертву возможность использовать инициализаторы объектов.
Есть ли способ напрямую перегрузить setter в общедоступных свойствах для С#? Или это просто ограничение языка, и это невозможно?