【发布时间】:2018-11-11 17:47:05
【问题描述】:
例如,假设我想创建一个继承 System.Diagnostics.StopWatch 的类,并且在此示例中假设 System.Diagnostics.Stopwatch.StartNew() 是该类的唯一公共构造函数(我知道它不是,但我正在尝试继承一个不同的类):
public class Example : System.Diagnostics.Stopwatch
{
public Example()
{
// ... return System.Diagnostics.Stopwatch.StartNew();
}
}
我知道有明显的解决方法,但只是想知道这在 C# 中是否可行
【问题讨论】:
-
你不能那样做。
-
StartNew()不是构造函数 -
你能做的最好的就是
public static new Example StartNew() { var e = new Example(); e.Start(); return e; } -
通常以这种方式设计类是为了防止继承的特定目的。如果没有可访问的构造函数,则不能从该类继承。
-
请出示您的真实案例,以便我们为您提供真正的帮助。
标签: c# inheritance constructor static