In Java, posso avere un oggetto come questo:Posso inizializzare le proprietà pubbliche di una classe utilizzando un tipo diverso in C#?
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;
}
}
Questo è bello, perché ho un getter per le mie proprietà, e molteplici setter. Posso impostare la proprietà "date" passando in un oggetto Date o in una stringa e lasciando che la classe lo decida.
In C# sembra che le cose siano un po 'diverse. Posso fare questo:
public class MyObject
{
public DateTime Date { get; set; }
}
La stenografia qui è ovviamente ottimale. Tuttavia, non sono sicuro se ci sia un modo integrato per sovraccaricare il setter per accettare più tipi. Mi rendo conto che potrei creare un metodo pubblico separato per impostare il valore, ma ciò significherebbe sacrificare la possibilità di utilizzare gli inizializzatori di oggetti.
C'è un modo per sovraccaricare direttamente il setter su proprietà pubbliche per C#? O è solo una limitazione della lingua e non può essere fatto?
Non è una risposta, ma vorrei lasciare l'analisi stringa al momento all'esterno di 'MyClass'. In C# è sufficiente usare 'DateTime.Parse', comunque. –