加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C#中实现Rust枚举的最佳方法是什么?

发布时间:2020-12-15 22:16:30 所属栏目:百科 来源:网络整理
导读:我有一个实体可以处于不同的状态之一(StateA,StateB和StateC),并且每个实体都有不同类型的相关数据(TStateA,TStateB,TStateC). Enums in Rust represent this perfectly.在C#中实现这样的东西的最佳方法是什么? This question may appear similar,但Rust中
我有一个实体可以处于不同的状态之一(StateA,StateB和StateC),并且每个实体都有不同类型的相关数据(TStateA,TStateB,TStateC). Enums in Rust represent this perfectly.在C#中实现这样的东西的最佳方法是什么?

This question may appear similar,但Rust中的枚举和C中的联合会有很大不同.

解决方法

您需要一个班级来代表您的实体

class Entity {States state;}

然后你需要一组类来表示你的状态.

abstract class States {
   // maybe something in common
}
class StateA : MyState {
   // StateA's data and methods
}
class StateB : MyState {
   // ...
}

然后你需要写代码

StateA maybeStateA = _state as StateA;
If (maybeStateA != null)
{
    - do something with the data in maybeStateA
}

C#没有为此编写代码的好方法,也许正在为C#.next考虑的Pattern Matching会有所帮助.

我认为你应该重新考虑你的设计来使用对象关系和遏制,试图采用一种生锈的设计并强制它进入C#可能不是最好的选择.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读