在Java中,我能有一個這樣的對象:我可以初始化在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;
}
}
這是很好的,因爲我有我的一個屬性的getter和setter方法多。我可以通過傳遞一個Date對象或一個String來設置「date」屬性,然後讓這個類找出它。
在C#中看起來事情有點不同。我可以這樣做:
public class MyObject
{
public DateTime Date { get; set; }
}
這裏的速記顯然是最優的。但是,我不確定是否有任何內置的方式來重載setter以接受多種類型。我意識到我可以創建一個單獨的公共方法來設置值,但這會犧牲使用對象初始值設定項的能力。
有沒有什麼辦法可以直接重載C#的公共屬性上的setter?或者這僅僅是一種語言限制,它不能完成?
不是答案,但我會在字符串到MyClass之外的解析。無論如何,在C#中你只需要使用'DateTime.Parse'。 – 2015-04-03 19:40:11