使用VS13在C#中声明variables时出现奇怪的错误

所以我有导入的办公室库,我说using Microsoft.Office.Interop;

我正在尝试创build一个方法来检查是否打开Excel工作簿。 由于这个错误,还没有取得任何进展。

当我声明Excel.Application exApp; 它说types或命名空间名称'excel'找不到。

它说我需要声明它说Microsoft.Office.Interop.Excel.Application exApp;

我真的不认为我在这里做错了什么…我的import没有错误..

 using Microsoft.Office.Interop; namespace Month_End_Closing { public partial class Step1Form : Form { public Step1Form() { InitializeComponent(); } static bool IsOpened(string wbook) { bool isOpened = true; Excel.Application exApp; return isOpened; } } } 

using指令不这样工作。 您不能在using指令中提供名称空间名称的一部分 ,然后在别处提供其余部分。

从C#5规范的第9.4.2节:

using-namespace-directive将包含在名称空间中的types导入到直接包含的编译单元或名称空间体中,从而使每种types的标识符都可以不受限制地使用。

using-namespace-directive将导入给定名称空间中包含的types,但不会导入嵌套的名称空间。

例如,这是无效的:

 using System; ... Console.WriteLine(IO.File.Exists("foo")); 

所以你可以写:

 using Microsoft.Office.Interop.Excel; 

接着:

 Application exApp; 

假设Application是否是明确的。 (这听起来好像不是你的情况。)或者你可以使用别名:

 using Excel = Microsoft.Office.Interop.Excel; 

接着:

 Excel.Application exApp;