首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在嵌套枚举和嵌套类/结构之间的选择

在嵌套枚举和嵌套类/结构之间的选择
EN

Stack Overflow用户
提问于 2017-05-11 11:26:25
回答 5查看 322关注 0票数 1

如果我需要一个类对象来拥有某个属性,那么让我们将其称为"type“。

我希望类型为“轮式”“nonWheeled”。如果vehicle类的实例被设置为有轮询属性,我希望该属性也具有其他两个属性之一,例如"twoWheeled"或“twoWheeled”或nonWheeled。

我尝试使用枚举来完成这个任务,例如:

代码语言:javascript
复制
private enum wheeledTypes {
    twoWheeled,
    fourWheeled
}

private enum Wheels
{
    a = wheeledTypes.twoWheeled,
    b = wheeledTypes.fourWheeled,
    c = nonWheeled
}

但是正如您所看到的,我得到了三种类型(a/b/c,我不想要)。我只想要a/b,或者轮式/非轮式,轮式可以有两种类型。

编辑:如果使用了类,您就会期望它们本身具有属性、构造函数、方法等。我不想要这个。我只想将车辆设置为轮式(2/4)或nonWheeled。轮式和nonWheeled不应该有进一步的属性。这就是为什么我认为吊床是合适的。也许我错了!

EN

回答 5

Stack Overflow用户

发布于 2017-05-11 11:28:36

你应该上课,就像这样:

代码语言:javascript
复制
class Vehicle { }

class NonWheeledVehicle : Vehicle { }

class WheeledVehicle : Vehicle 
{ 
    internal enum WheelTypes { TwoWheeled, FourWheeled }
}
票数 1
EN

Stack Overflow用户

发布于 2017-05-11 11:31:50

你会想要这样的东西:

代码语言:javascript
复制
public enum WheelType
{
    TwoWeeled,
    FourWeeled
}

public class Vehicle
{

}

public class WheeledVehicle : Vehicle
{
    public WheelType WheelType { get; set; }
}

然后,Vehicle是您的non-wheeled vehicle类型,WheeledVehicle是具有特定WheelTypeVehicle

票数 0
EN

Stack Overflow用户

发布于 2017-05-11 11:31:54

使用类代替

代码语言:javascript
复制
class Vehicle {
}

class Wheeled : Vehicle {
}

class NonWheeled : Vehicle {
}

class TwoWheeled : Wheeled {
}

class FourWheeled: Wheeled {
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43914075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档