0

我的问题是这样的。我有一个 XMLUtility 类

public class XmlUtility
    {

        protected string FilePath;

        protected string XMLFileName;

        protected XmlDocument SettingsFile;


        public XmlUtility(string inFilePath, string inXMLFileName)
        {    

            FilePath = inFilePath;
            XMLFileName = inXMLFileName;    

            if (isFilePresent() == false)
            {                    
                createXMLFile();                   
            }

            else
            {
                SettingsFile = new XmlDocument();
                SettingsFile.Load(FilePath + "\\" + XMLFileName);    
            }   

        }

和一个

public bool isFilePresent()
        {                
            return File.Exists(FilePath + "\\" + XMLFileName) ? true : false;

        }

和其他基本功能,如 addSetting、removeSetting、checkSettingExists 等。此类为非常基本的 xml 设置文件提供功能。

所以现在我需要更高级的设置处理。所以我创建了另一个类并从 XMLUtility 类派生它。

public class KeyPairingXML : XmlUtility
    {




    }

所以我最初的想法是我不需要这个类的构造函数,因为它将调用基类构造函数。但是我错了。

 public KeyPairingXML(string inFilePath, string inXMLFileName) : base(inFilePath, inXMLFileName)
        {



        }

我的问题是上面的代码是否正确?我是否也需要在此构造函数中编写整个检查过程,还是由基类的构造函数处理?只是一个空的代码块是正确的吗?

4

1 回答 1

3

不确定您使用的是哪种语言,但对于大多数语言(例如 Java 或 C#),如果出现以下情况,您可以省略在派生类型中定义构造函数:

  1. 基类没有定义构造函数(因此它有一个隐式的默认构造函数)
  2. 基类定义了一个无参数构造函数。在这种情况下,它可以有其他构造函数并且它不会改变任何事情

但是,您的基类只定义了一个非默认构造函数,因此您需要在派生类中重新定义它。您拥有的以下代码是正确的:

public KeyPairingXML(string inFilePath, string inXMLFileName)
  : base(inFilePath, inXMLFileName) {
}

您还应该能够调用基类的公共方法。您是否看到任何错误/警告?

于 2010-07-17T19:09:18.960 回答