【问题标题】:Is it possible to derive from System.String? [duplicate]是否可以从 System.String 派生? [复制]
【发布时间】:2015-09-30 08:47:02
【问题描述】:

我从String 派生一个类,但它不允许我从该类继承。如果我想这样继承,我需要怎么做?

public class a : string
{ 
  //class definition
}

【问题讨论】:

  • 你不能,string 是一个密封类。见here
  • 简短的回答就像 Maarten 所说的那样......问题是你必须继承字符串吗?字符串扩展可以吗?...我怀疑字符串扩展方法可以满足您的目的msdn.microsoft.com/en-us/library/bb383977.aspx
  • 您想要从 String 派生的原因是什么? (这是不可能的,因为它是一个密封类)
  • 没有特别的理由这样做。我只是在检查

标签: c# inheritance base-class


【解决方案1】:

您不能从String 继承,因为它是sealed。如果您必须扩展提供的功能,您有两种选择:

  • 围绕String 编写一个包装类并自己实现这些方法。
  • 使用Extension methods

【讨论】:

    【解决方案2】:

    您不能从 string 类继承,因为它是 sealed。 对于 string 类的任何其他行为,请考虑创建扩展方法。

    【讨论】:

      【解决方案3】:

      简答:

      你不能从基本类型派生出来。

      长答案:

      您不能,因为 String 类是密封的,从而阻止了继承。

      如果你想给字符串对象添加方法,你可以使用扩展方法(更多信息在这里:https://msdn.microsoft.com/en-us/library/bb383977.aspx

      【讨论】:

        猜你喜欢
        • 2011-10-15
        • 1970-01-01
        • 1970-01-01
        • 2019-05-20
        • 2015-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-20
        相关资源
        最近更新 更多