get_Offset和Offset之间的区别?

时间:2012-05-04 10:29:28

标签: c# excel excel-interop

我不明白get_OffsetOffset

之间的区别

MSDN on NamedRange.get_Offset

  

此API支持Visual Studio基础结构,但并非如此   直接从您的代码中使用。使用Offset属性而不是   这种方法。

这究竟是什么意思?对get_Value方法也有类似的说法,它直接在代码中广泛使用。

采取以下示例,对我也这样做。

myRange.get_Offset(1,0).Value = "Foo";
myRange.Offset[1,0].Value = "Foo";

他们有什么区别?

3 个答案:

答案 0 :(得分:3)

get_Something 

是一个内部函数,由CLR为属性get访问器生成。

例如,如果您有财产

public string Name {get;set;}

编译后你会找到一个

get_Nameset_Name 方法,因为属性不是简单的包装器而不是set-variable / get-variable概念单一类域。

作为一种内部方法,使用它并不是一种好习惯,最好使用用户定义的,明确的property访问权限。

答案 1 :(得分:1)

理论上可以在没有警告的情况下更改或删除

get_Offset。如果文档说使用另一种等效方法,你应该这样做。 get_Value仅标记为Visual Studio 2005的方式,因此您可以自由使用

答案 2 :(得分:0)

与文档说的完全不同。您应该使用Offset属性,而不是get_Offset方法。

该方法只是公开的,因为他们需要以某种方式为其他类访问它。如果他们找到更好的方法来使用该类,该方法可能会在任何未来的版本中消失,并且它甚至不会被提及为一个重大变化,因为文档明确指出您不应该使用它。