2016-06-17 10 views
0

C#Excel Interopでは、new Excel.Workbook()default(Excel.Workbook)の違いは何ですか?C#Excel Interopの新機能Excel.Workbook()とデフォルト(Excel.Workbook)の差異

例:私はMicrosoft.Office.Interop.Excel.Workbook objExcelWbk = new Excel.Workbook();を使用する場合には、CLSID {00020819-0000-0000-C000-000000000046}

しかし、とコンポーネントのCOMクラスファクトリを取得私にエラーを与える

Microsoft.Office.Interop.Excel.Workbook objExcelWbk = new Excel.Workbook(); 
Microsoft.Office.Interop.Excel.Workbook objExcelWbk = default(Excel.Workbook); 

私はMicrosoft.Office.Interop.Excel.Workbook objExcelWbk = default(Excel.Workbook);私のスクリプトは正常に動作します。

それぞれのガイドラインは何ですか?違いは何ですか?

+1

です。 'default(Excel.Workbook)'は 'null'を返します。これは参照型の*デフォルト値です。 – erdinger

+0

@erdingerエラーをスローしないブックを作成する方法オブジェクト参照がオブジェクトのインスタンスに設定されていない – Alexander

答えて

0

デフォルトのコンストラクタを使用してExcelワークブックをインスタンス化するのではなく、デフォルト値を使用してワークブックを明示的にインスタンス化しています。

defaultがキーワードで、ドキュメントはここで見つけることができます:

https://msdn.microsoft.com/en-us/library/xwth0h0d.aspx

1

あなたはそのようにブックを作成することはできません。それを行うための通常の方法は、 `新しいExcel.Workbookは()` `実際Workbook`クラスのインスタンスを作成します

var objExcelApp = new Excel.Application(); 
var objExcelWbk = objExcelApp.Workbooks.Add(); 

https://msdn.microsoft.com/en-us/library/ms173186

+0

Excelブックを開く方法? – Alexander

関連する問題