C# 如何解决此Microsoft.Office.Excel方法调用中的歧义?
我正在c代码中使用office 2007 excel工作表功能。 VS2010发出此警告 警告3方法之间的歧义 'Microsoft.Office.Interop.Excel.\u工作表.Activate()' 和非方法 “Microsoft.Office.Interop.Excel.DocEvents\u Event.Activate”。 使用方法 小组。D:\EXLANEDB01p\dev\libraries\EXCEL\EXCEL.cs 531 95 EXCEL 我如何解决这个问题? 电话是C# 如何解决此Microsoft.Office.Excel方法调用中的歧义?,c#,excel,C#,Excel,我正在c代码中使用office 2007 excel工作表功能。 VS2010发出此警告 警告3方法之间的歧义 'Microsoft.Office.Interop.Excel.\u工作表.Activate()' 和非方法 “Microsoft.Office.Interop.Excel.DocEvents\u Event.Activate”。 使用方法 小组。D:\EXLANEDB01p\dev\libraries\EXCEL\EXCEL.cs 531 95 EXCEL 我如何解决这个问题? 电话
xSheet.Activate();
其中xSheet
在调用as中作为ref传递
ref Microsoft.Office.Interop.Excel.Worksheet xSheet
您需要消除
激活
名称的歧义。在工作表界面中,Activate
是一种方法(如果被视为\u工作表
对象)或事件(如果被视为DocEvents\u事件
对象)
将对象强制转换为Microsoft.Office.Interop.Excel.\u工作表,然后调用Activate()
或者声明一个新的\u工作表
变量,并在方法中使用它
_Worksheet sheet = xSheet;
sheet.Activate();
否则,您可以将方法声明更改为引用\u工作表
,而不是工作表
以及所有相关声明
void MyMethod(ref Microsoft.Office.Interop.Excel._Worksheet xSheet)
{
// ...
}
// usage:
_Worksheet sheet = new Worksheet();
MyMethod(ref sheet);
@保护者:我们需要消除
激活
名称的歧义。在工作表
界面中,激活
是一种方法(如果被视为\u工作表
对象)或事件(如果被视为DocEvents\u事件
对象)。编译器不确定如何处理它,所以我们(程序员)需要告诉我们如何处理它。在这种情况下,我们应该将其视为一个工作表,其中名称Activate
是一个方法,如果我们在开始时将变量声明为\u工作表
,而不是实现\u工作表
和DocEvents\u事件
接口的互操作类型工作表
,我们本来可以一起避免这种情况。i、 例如,_工作表xSheet=新工作表()代码>
void MyMethod(ref Microsoft.Office.Interop.Excel._Worksheet xSheet)
{
// ...
}
// usage:
_Worksheet sheet = new Worksheet();
MyMethod(ref sheet);