Работая с классами SqlCommand и OdbcCommand, обратил внимание на одно отличие в работе Intellisence
У класс SqlCommand метод Clone() виден сразу, а у OdbcCommand только после приведения его к ICloneable.
Как они этого добились? Для чего это сделано?
Здравствуйте, Аноним, Вы писали:
А>У класс SqlCommand метод Clone() виден сразу, а у OdbcCommand только после приведения его к ICloneable.
А>Как они этого добились?
OdbcCommand реализует метод Clone явно.
object ICloneable.Clone() { ... }
SqlCommand вдобавок реализует типизированный вариант.
public SqlCommand Clone() { ... }
*В теории могли извратиться вот так:
[EditorBrowsable(EditorBrowsableState.Never)]
public void Clone() { ... }
А>Для чего это сделано?
а) OdbcCommand посчитали, что метод не нужен
б) реализация Clone у OdbcCommand имеет побочные эффекты и не предназначена для широкого использования — решили подстраховаться.