具有相同属性但类型不同的多个类

时间:2020-08-05 17:25:48

标签: c# class oop

我想创建一个与另一个类具有相同字段名称的类,但具有不同的字段类型。 例如:

public class Core
{
    public float Temperature { get; private set; }
    public float Load { get; private set; }
    public float Clock { get; private set; }

...

我获得了上述课程,我想要另一个具有所有字段但为布尔型的课程。

public class CoreThreshold
{
    public bool Temperature { get; private set; }
    public bool Load { get; private set; }
    public bool Clock { get; private set; }
...

我的操作方式像上面一样硬编码,想知道是否有更好的方法。

我想使其成为OOP而不是使用获取字符串并返回值的方法。 同样,仅使布尔值成为1或0(如布尔值)也不是一种选择(实际类型不是float)。

是可以做到的,还是唯一的选择是对两个类中的每个细节进行硬编码?

1 个答案:

答案 0 :(得分:1)

我不知道这是否会如您所愿,但是我将在黑暗中进行射击。

您可能有一个支持Generic的基类。例如:

public abstract class BaseCore<T>
{
    public T Temperature { get; protected set; }
    public T Load { get; protected set; }
    public T Clock { get; protected set; }
}

然后基于此派生一些类:

public class Core : BaseCore<float>
{
}

public class CoreThreshold : BaseCore<bool>
{
}

因此,您要做的就是向BaseCore添加另一个属性,所有派生类都会自动获取它。您不必重复代码。

相关问题