c# - 如何将派生类属性传递给基类的构造函数

标签 c# inheritance

这是我的基类:

class baseClass
{
 string fileContents; 

 public baseClass(string filePath)
 {
  fileContents=getContents(filePath);
 }

}

我有一个派生类,其中文件路径始终相同。理想情况下,我想按如下方式传递该文件路径:

class derivedClass:baseClass
{
 string specialFilePath=@"x:\abc.def";

 public derivedClass():base(specialFilePath)
 {
 }
}

但这给了我一个编译错误:

An object reference is required for the non-static field, method, or property 'derivedClass.specialFilePath'

如果我理解正确,这是因为 baseClass 构造函数首先被调用,在 derivedClass 有机会创建 specialFilePath 之前。如何将此字符串传递回基类的构造函数?

最佳答案

将“specialFilePath”设为静态,这将起作用——静态成员在构造函数运行之前被初始化。

class derivedClass:baseClass
{
    static string specialFilePath=@"x:\abc.def";

    public derivedClass():base(specialFilePath)
    {
    }
}

关于c# - 如何将派生类属性传递给基类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22108624/

相关文章:

Java 中 getBytes 的 C# 模拟

C++ 继承和虚函数

c# - RabbitMQ 中的消息持久化

c# - datagridview 单元格点击事件

r - 为什么 S4 继承在环境之间丢失?

inheritance - 覆盖 Coldfusion 中的函数

ios - 在更改子类中的访问器方法时绕过必须@synthesize

c++ - 在 C++ 中访问继承类的特定方法

c# - ScrapySharp NavigateToPage 时继续卡住加载

c# - 如何从 C# 调用 visual studio 命令