我没有太多关于 COM 或 coclass 的背景知识,所以我不太明白为什么我可以将new
操作符与接口一起使用。从与语言/框架无关的角度来看,为什么它可以正确编译和运行令人困惑:
using Microsoft.Office.Interop.Excel;
public class ExcelProgram
{
static void Main(string[] args)
{
Application excel = new Application();
}
}
在 Visual Studio 2010 中检查Application
显示:
using System.Runtime.InteropServices;
namespace Microsoft.Office.Interop.Excel
{
// Summary:
// Represents the entire Microsoft Excel application.
[Guid("000208D5-0000-0000-C000-000000000046")]
[CoClass(typeof(ApplicationClass))]
public interface Application : _Application, AppEvents_Event
{
}
}
幕后发生了什么?