2016-06-17 4 views
0

In C# Excel Interop was ist der Unterschied zwischen der Deklaration new Excel.Workbook() und default(Excel.Workbook).In C# Excel Interop whats Unterschied zwischen neuen Excel.Workbook() und Standard (Excel.Workbook)

Beispiel:

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

Wenn ich Microsoft.Office.Interop.Excel.Workbook objExcelWbk = new Excel.Workbook(); verwende es gibt mir den Fehler für Komponente der COM-Klasse Fabrik Abrufen von mit CLSID {00020819-0000-0000-C000-000000000046}

Aber wenn Ich benutze Microsoft.Office.Interop.Excel.Workbook objExcelWbk = default(Excel.Workbook); mein Skript läuft gut.

Was sind die Richtlinien für die Verwendung der einzelnen? Und was sind die Unterschiede?

+1

Die 'neu Excel.Workbook()' tatsächlich eine Instanz von 'Workbook' Klasse erstellt. Das 'default (Excel.Workbook)' gibt 'null' zurück, da dies der Standardwert * für Referenztypen ist. – erdinger

+0

@erdinger wie eine Arbeitsmappe erstellen, die keinen Fehlerobjektverweis nicht auf eine Instanz ein – Alexander

Antwort

1

Sie erstellen können eine Arbeitsmappe, die Art und Weise:

default ist ein Schlüsselwort, kann die Dokumentation hier. Der üblicher Weg, es zu tun ist

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

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

+0

eine Excel-Arbeitsmappe Wie Objekt gesetzt werfen öffnen? – Alexander

Verwandte Themen