在接口中定义构造函数签名
在 C# 中,接口提供了一个契约,该契约定义了实现接口的类必须执行的一组方法和属性坚持。然而,接口传统上不会指定实现细节,包括构造函数签名。
为什么不能在接口中定义构造函数?
无法定义构造函数接口中的构造函数源于接口的基本性质。接口是抽象契约,没有自己的实现。当类实现接口时,它为接口中定义的方法和属性提供自己的实现。另一方面,构造函数负责初始化对象的状态,并且特定于特定类的实现。
因此,接口没有自己的实现,因此无法定义自己的构造函数。构造函数是类实现的一部分,被定义为类定义的一部分,而不是它实现的接口。
示例
考虑以下接口和类:
interface IDrawable { void Update(); void Draw(); } class MyDrawable : IDrawable { private GraphicsDeviceManager _manager; public MyDrawable(GraphicsDeviceManager manager) { _manager = manager; } public void Update() { } public void Draw() { } }
在此示例中,MyDrawable 类实现了 IDrawable 接口。但是,IDrawable 接口没有定义构造函数。构造函数定义在MyDrawable类中,负责初始化对象的GraphicsDeviceManager成员变量。
Alternatives
虽然接口不支持构造函数的定义,但是有初始化对象的其他方法state:
以上是为什么 C# 中的接口不能定义构造函数签名?的详细内容。更多信息请关注PHP中文网其他相关文章!