gpt4 book ai didi

C# - 创建一个可保存的对象

转载 作者:行者123 更新时间:2023-11-30 12:41:04 25 4
gpt4 key购买 nike

我想创建一个类库,其中包含一个对象可以派生的接口(interface),比方说 ISaveableObject

现在,这个接口(interface)应该实现以下功能:

  • 从该接口(interface)派生的对象应该有一个方法 ToSaveableObject(类似于 System.Object.ToString() 方法)。
  • 并且它应该包含一个特定的构造函数,该构造函数将对象数组作为其参数。

这两者之间的联系应该是 ToSaveableObject 方法返回一个字符串,该字符串包含 object[] 所需的所有属性,并将其转换为可读的字符串并返回它。

我想使用接口(interface)是朝着正确的方向前进还是更适合这种情况的抽象类?

遗憾的是,接口(interface)无法实现构造函数,那么有没有其他方法可以实现我的目标?

最佳答案

使用抽象基类来形成派生类的契约。您想要的更多是实现细节,而不仅仅是接口(interface)所能提供的。

抽象基类看起来像这样

public abstract class SaveableObject {
protected object[] parameters = new object[0];

protected SaveableObjectBase(object[] objects) {
this.parameters = objects;
}

public abstract string ToSaveableObject();
}

所以现在派生类必须实现 ToSaveableObject() 方法,并且可以访问构造函数中传递的对象以生成字符串。

如果 ToSaveableObject 方法的构造算法对于所有派生类型都是相同的,那么您应该只在基本抽象类中实现该方法,以便所有派生类都具有已经内置的功能。

关于C# - 创建一个可保存的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39436236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com