gpt4 book ai didi

c# - 为构造函数实现策略

转载 作者:太空宇宙 更新时间:2023-11-03 17:37:23 26 4
gpt4 key购买 nike

在 C# 中实现模板/抽象类构造函数策略的最佳方法是什么?我有几个类都基于在构造函数中解析字符串。解析是在静态方法中完成的,该方法创建键值对列表并且对所有类都是通用的,但某些字段对所有类也是通用的 - 因此我使用抽象模板类。

问题是我没有看到继承抽象基类的构造函数实现的方法。否则我会在基类中实现构造函数策略,并强制在一些抽象方法中处理列表。

编辑:为模板类添加了无效代码

public abstract class XXXMessageTemplate 
{
public XXXMessageTemplate(string x) // implementation for the constructor
{
Parse(x);//general parse function
CommonFields();//filling common properties
HandlePrivateProperties();//fill individual properties
HandlePrivateStructures();//fill individual structures
}
abstract void HandlePrivateProperties();
abstract void HandlePrivateStructures();
}

The actual messages should not implement any constructor and only implement the HandlePrivateProperties and HandlePrivateStructures functions.

最佳答案

如果您希望基类构造函数的逻辑在派生类中运行,您通常只需调用它:

 public Derived(...) : base(...)
{
// ...
}

基类可以在构造函数中调用抽象/虚拟方法,但通常不赞成这样做,因为派生类的构造函数体还没有被执行。 (你真的想着重记录这一点。)

这是否回答了您的问题?我不完全确定我理解这个问题 - 一些伪代码会有所帮助。

编辑:派生类来实现构造函数。构造函数不是继承的。如果你没有指定任何构造函数,编译器将提供一个无参数构造函数,它调用一个基本的无参数构造函数。但是,您可以轻松地编写一个具有相同签名的构造函数,并只调用基类构造函数:

public Derived(string x) : base(x)
{
// Base constructor will do all the work
}

关于c# - 为构造函数实现策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/705063/

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