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

时间:2014-04-02 14:10:41

标签: c# excel visual-studio-2010 visual-studio visual-studio-2013

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

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

当我声明Excel.Application exApp;时,它表示无法找到Type或Namespace名称'excel'。

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

我真的不认为我在这里做错了什么......导入时没有错误..

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;
        }
    }
}

1 个答案:

答案 0 :(得分:7)

using指令不起作用。您不能在using指令中提供命名空间名称的部分,然后在其他地方提供。

来自C#5规范的第9.4.2节:

  

using-namespace-directive 将命名空间中包含的类型导入到直接封闭的编译单元或命名空间体中,从而无需限定地使用每种类型的标识符。

     

...

     

using-namespace-directive 导入给定命名空间中包含的类型,但特别是不导入嵌套的命名空间。

例如,这是无效的:

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;