构造函数执行,但成员仍然为空

本文关键字:成员 执行 构造函数 | 更新日期: 2023-09-27 18:16:36

我想使用构造函数来为我的类建立对象。问题是构造函数正确执行(在Visual Studio调试器中跳过构造函数中的每个赋值),但是在构造函数完成并建立对象之后,我不能使用任何类的方法来访问数据成员。

在构造函数上面列出的数据成员和构造函数内部赋值的数据成员之间似乎存在脱节。

张贴的错误是:"NullReferenceException Unhandled - Object reference没有设置为一个对象的实例。"

...
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
using System.IO;
namespace ExcelManip
{
    class ExcelInterop
    {
        //MEMBERS
        private Application _excelApp;// = new Application();
        private Workbooks books;
        private Workbook workBook;
        //CONSTRUCTOR
        public ExcelInterop(string thisFileName)
        {
            Application _excelApp = new Application();
            Workbooks books = _excelApp.Workbooks;
            Workbook workBook  = books.Open(thisFileName,
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing);
        }

构造函数执行,但成员仍然为空

您是在构造函数的作用域中初始化新变量,而不是在新对象实例的作用域中初始化。改成:

        public ExcelInterop(string thisFileName)
        {
            _excelApp = new Application();
            books = _excelApp.Workbooks;
            workBook  = books.Open(thisFileName,
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing);
        }