Klasa Convert
istnieje od .NET 1.0. Interfejs IConvertible
również istnieje od tego czasu.Dlaczego parametr Convert.ChangeType przyjmuje parametr obiektu?
Sposób Convert.ChangeType
tylko prace na obiektach typu, które wdrażają IConvertible
(w rzeczywistości, o ile się nie mylę, wszystko z metod konwersji dostarczonych przez klasę Convert
są w ten sposób). Dlaczego więc jest typ parametru object
?
Innymi słowy, zamiast tego:
public object ChangeType(object value, Type conversionType);
Dlaczego nie jest ten podpis?
public object ChangeType(IConvertible value, Type conversionType);
Po prostu wydaje mi się to dziwne.
myślę, że to wydaje się być jedynym możliwym wyjaśnieniem ... nie wydaje się wam dziwne, mimo, że projektanci zastanawiałabym się, czy zachowanie "może wziąć obiekt i przekonwertować go na ten sam typ" nawet warte wsparcia? Chodzi mi o to, do czego byłby on kiedykolwiek użyty? –
@Dan - Myślę, że ObjectDatasource używa go wewnętrznie IIRC, myślę, że woleli sprawdzić wewnątrz zamiast jednego na zewnątrz? Zgadzam się, że nie wydaje się to zbyt przydatne. –