我一直在寫很多代碼,最近可以與Windows Forms和Excel Interop一起使用。我遇到的其中一個問題是模棱兩可的引用。例如,如果我嘗試創建一個新的Excel應用程序,它不起作用。有沒有辦法避免多餘的「使用」指令,當我只想在某些時候使用別名?
Application app = new Application { Visible = true };
此行返回錯誤,因爲對應用程序的引用不明確。它可以引用Excel應用程序,但它也可以引用Windows窗體應用程序。
代替打字這一點的:
Microsoft.Office.Interop.Excel.Application = new Microsoft.Office.Interop.Excel.Application { Visible = true };
我知道我可以改變我的使用指令如下:
using Excel = Microsoft.Office.Interop.Excel;
,然後改變應用程序的我聲明:
Excel.App app = new Excel.App { Visible = true};
但是,後來在我的代碼中,我必須聲明不少工作表和工作簿。如果不使用「的Excel =微軟...」命名空間別名,我可以做到這一點,因爲引用簿和工作表並不含糊:
Workbook someWorkbook = app.Workbooks.Add();
Worksheet someWorksheet = app.ActiveSheet;
但是,當我用我的指令改爲
using Excel = Microsoft.Office.Interop.Excel;
我不得不改變使用Excel對象爲「Excel.someObject」所有聲明,或我要添加第二個使用指令:
選項1:
using Excel = Microsoft.Office.Interop.Excel;
...
Excel.Application app = new Application { Visible = true };
Excel.Workbook someWorkbook = app.Workbooks.Add();
Excel.Worksheet someWorkSheet = app.ActiveSheet;
選項2:
using Excel = Microsoft.OFfice.Interop.Excel;
using Microsoft.Office.Interop.Excel;
...
Excel.Application app = new Application { Visible = true };
Workbook someWorkbook = app.Workbooks.Add();
Worksheet someWorkSheet = app.ActiveSheet;
我更喜歡選項2,這是我作爲迂腐,但具有冗餘使用指令引用同一個庫是寫兩個令人側目。 有沒有第三個選項允許我寫我的聲明,如選項2所示,而不必使用兩個using指令?也就是說,有沒有辦法寫我的使用指令,以便可以在需要時使用別名,但在引用不明確時省略?
你已經知道所有的可能性。我會使用選項2,我不覺得它令人討厭。 – sam
'使用'*指令*。 'using'語句是自動爲您調用'Dispose'的塊。不幸的是,有兩個完全不同的功能與類似的名字,但它是。因此,對所用功能使用* correct *名稱而非另一個名稱是有幫助的。 –
我的不好。我將進行編輯。 – arbitrarystringofletters