无法创建抽象类的实例

问题描述:

我想编译下面的代码,我得到的错误:无法创建抽象类的实例

无法创建抽象类的实例。请帮助

m_objExcel = new Excel.Application(); 
m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks; 
m_objBook = (Excel._Workbook)(m_objBooks.Add(m_objOpt)); 
m_objSheets = (Excel.Sheets)m_objBook.Worksheets; 
m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(1)); 

// Create an array for the headers and add it to cells A1:C1. 
object[] objHeaders = {"Order ID", "Amount", "Tax"}; 
m_objRange = m_objSheet.get_Range("A1", "C1"); 
m_objRange.Value = objHeaders; 
m_objFont = m_objRange.Font; 
m_objFont.Bold=true; 

// Create an array with 3 columns and 100 rows and add it to 
// the worksheet starting at cell A2. 
object[,] objData = new Object[100,3]; 
Random rdm = new Random((int)DateTime.Now.Ticks); 
double nOrderAmt, nTax; 
for(int r=0;r<100;r++) 
{ 
    objData[r,0] = "ORD" + r.ToString("0000"); 
    nOrderAmt = rdm.Next(1000); 
    objData[r,1] = nOrderAmt.ToString("c"); 
    nTax = nOrderAmt*0.07; 
    objData[r,2] = nTax.ToString("c"); 
} 
m_objRange = m_objSheet.get_Range("A2", m_objOpt); 
m_objRange = m_objRange.get_Resize(100,3); 
m_objRange.Value = objData; 

// Save the Workbook and quit Excel. 
m_objBook.SaveAs(m_strSampleFolder + "Book2.xls", m_objOpt, m_objOpt, 
    m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange, 
    m_objOpt, m_objOpt, m_objOpt, m_objOpt); 
m_objBook.Close(false, m_objOpt, m_objOpt); 
m_objExcel.Quit(); 

我建议你确定它是打破行...

Abstract类不能直接创建,而不是你需要通过一个派生类中创建一个实例,这就是为什么你正在得到例外。

如果您不用try/catch包装代码或打开“公共语言运行时例外”(默认快捷方式是VS2008中的Ctrl + E),那么您应该能够找到导致问题的线。

我认为它甚至可能是你的第一线,通常你使用这样的:

new ApplicationClass(); 
+0

你可以发布编辑的代码吗? – SmartestVEGA 2010-03-31 13:20:50

+0

您需要检查是否有问题。如果这条线是问题,那么它可以像m_objExcel = new ApplicationClass()一样简单; – Ian 2010-03-31 13:33:21

抽象类不能用“新”被实例化。看看错误,并看看它的指向是什么。然后检查代码,看看它在做什么。如果无法确定答案,请发帖。

只是尝试Excel.Application而不是新的Excel.Application()

+0

m_objExcel = new Excel.Application(); – SmartestVEGA 2010-03-31 13:18:13