Разница между get_Offset и Offset?
Я не понимаю разницу между get_Offset
а также Offset
:
MSDN в состояниях NamedRange.get_Offset
Этот API поддерживает инфраструктуру Visual Studio и не предназначен для использования непосредственно из вашего кода. Используйте свойство Offset вместо этого метода.
Что именно это значит? Подобное также сказано для метода get_Value, который широко используется непосредственно в коде.
Возьмите следующие примеры, которые сделали бы то же самое для меня.
myRange.get_Offset(1,0).Value = "Foo";
myRange.Offset[1,0].Value = "Foo";
В чем их разница?
3 ответа
get_Something
является внутренней функцией, которая генерируется CLR для свойства get
сбруя.
Например, если у вас есть свойство
public string Name {get;set;}
после компиляции вы найдете
get_Name
а также set_Name
методы, потому что свойства - не что иное, как простые обертки над концепцией set-variable/get-variable в одной области классов.
Будучи внутренним методом, не рекомендуется использовать его, лучше использовать определенный пользователем property
доступ.
get_Offset теоретически может быть изменен или удален без предупреждения. Если в документации сказано использовать другой эквивалентный метод, вы должны сделать именно это. get_Value помечен таким образом только для Visual Studio 2005, так что вы можете использовать его свободно
Разница именно в том, что сказано в документации. Вы должны использовать Offset
собственность, а не get_Offset
метод.
Метод просто публичный, потому что им нужно, чтобы он был доступен таким образом для какого-то другого класса. Этот метод может просто исчезнуть в любой будущей версии, если они найдут лучший способ использования класса, и он даже не будет упомянут как серьезное изменение, поскольку в документации четко указано, что вы не должны его использовать.