1

我正在尝试检查我的对象信息是 word.Selection 还是 word.Document,然后稍后在我的程序中使用它。

这是我遇到麻烦的地方。

 object info;
 var doc = info is word.Document ? info as word.Document : info as word.Selection;
 //do something with doc.Words;

它返回此错误:

无法确定条件表达式的类型,因为“Microsoft.Office.Interop.Word.Document”和“Microsoft.Office.Interop.Word.Selection”之间没有隐式转换

我似乎无法绕过这个错误

4

2 回答 2

3

使用?:运算符时,两个结果必须属于同一类型。

使用标准 if case:

if(info is word.Document)
{
    //your code
}
else
{
}
于 2013-10-06T17:21:51.317 回答
2

?: Operator (C# Reference)

first_expression 和 second_expression 的类型必须相同,或者必须存在从一种类型到另一种类型的隐式转换。

在您的第一个表达式返回word.Document,但第二个返回word.Selection。由于它们不一样,而且看起来它们之间也没有隐含的对话。

于 2013-10-06T17:25:44.807 回答