首页 > C# > 从继承类的构造函数传递给基类的构造函数,我该怎么做?

从继承类的构造函数传递给基类的构造函数,我该怎么做?

上一篇 下一篇

网友问题:

如果我从基类继承,并希望将某些内容从继承类的构造函数传递给基类的构造函数,我该怎么做?

例如,如果我从 Exception 类继承,我想做这样的事情:

class MyExceptionClass : Exception
{
     public MyExceptionClass(string message, string extraInfo)
     {
         //This is where it's all falling apart
         base(message);
     }
}

基本上我想要的是能够将字符串消息传递给基 Exception 类。

分割线

网友回答:

请注意,可以在对基构造函数的调用中使用静态方法。

class MyExceptionClass : Exception
{
     public MyExceptionClass(string message, string extraInfo) : 
         base(ModifyMessage(message, extraInfo))
     {
     }

     private static string ModifyMessage(string message, string extraInfo)
     {
         Trace.WriteLine("message was " + message);
         return message.ToLowerInvariant() + Environment.NewLine + extraInfo;
     }
}

分割线

网友回答:

将构造函数修改为以下内容,以便它正确调用基类构造函数:

public class MyExceptionClass : Exception
{
    public MyExceptionClass(string message, string extrainfo) : base(message)
    {
        //other stuff here
    }
}

请注意,构造函数不是可以在方法中随时调用的东西。这就是您在构造函数主体中的调用中出现错误的原因。

分割线

网友回答:

如果您需要调用基构造函数,但不是立即调用,因为您的新(派生)类需要执行一些数据操作,最好的解决方案是求助于工厂方法。你需要做的是将 private 标记为派生构造函数,然后在类中创建一个静态方法,该方法将执行所有必要的操作,然后调用构造函数并返回对象。

public class MyClass : BaseClass
{
    private MyClass(string someString) : base(someString)
    {
        //your code goes in here
    }

    public static MyClass FactoryMethod(string someString)
    {
        //whatever you want to do with your string before passing it in
        return new MyClass(someString);
    }
}

模板简介:该模板名称为【从继承类的构造函数传递给基类的构造函数,我该怎么做?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 193次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-09
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
企业网站 微信图片 微信公众平台 响应式 微信模板 单页式简历模板 微信文章 html5 微信素材 自适应
您可能会喜欢的其他模板