首页 / 知识
代表C#中参数化枚举的最佳方法?
2023-04-15 14:21:00

Best way to represent a parameterized enum in C#?
是否有任何好的解决方案来表示 请参阅以下答复之一中的Ocaml示例,遵循Haxe代码:
我不熟悉OCaml或Haxe,也不够聪明,无法理解其他解释,所以我去查阅了Haxe枚举文档-底部的" Enum Type Parameters"位似乎是相关的部分。 基于此,我的理解如下: "正常"枚举基本上是一个值,该值仅限于您在枚举定义中定义的内容。 C#示例:
在Haxe中,您可以从枚举的页面中向枚举添加复杂类型(人为的示例):
这似乎意味着
从未使用过它,看起来好像正在生成一些匿名类型(例如,执行 Haxe示例-您可以看到'next'被用作临时局部变量,以将数据从匿名cons结构中拉出:
老实说,当我"点击"它似乎正在做的事情时,这让我大吃一惊。它似乎非常强大,我可以理解为什么您会在C#中寻找类似的功能。
C#枚举与最初复制它们的C / ++枚举几乎相同。这基本上是说 我在C#中这样做的目的是使用泛型和接口。像这样:
然后,您可以有一个 我真的不知道我欢迎任何其他可能的解决方案,因为我对自己的解决方案并不感到特别骄傲:-) 使用具有静态属性的类来表示枚举值。您可以选择使用私有构造函数来强制对类的所有引用都经过静态属性。
看一下 仅为此使用类有什么问题?这很丑陋,但这就是Java人员在集成了Enum语言支持之前是如何做到的! C#(据我所知,通常是.NET框架)不像Java那样支持参数化枚举。话虽这么说,您可能想看看属性。 Java枚举所具有的某些功能可以通过属性来实现。 |
最新内容
相关内容
linux命令解决方案?
linux命令解决方案?,系统,管理,数据,电子,工作,电脑,软件,情况,不了,档案,linux处理/tmp文件空间不足1、删除缓存文件 缓存文件是临时存储在磁linux使用命令的方法?
linux使用命令的方法?,系统,信息,工具,标准,数据,命令,左下角,目录,文件夹,图标,linux的cd命令的使用方法1、cd ~:回到用户家目录。注:这得看你linux命令输入方法?
linux命令输入方法?,系统,电脑,密码,管理,地址,命令,网站,工具,首开,位置,linux终端输入~怎么弄中间在电脑上打开需要的Word文件进入。进入到文Python中什么是反射?使用方法有哪
Python中什么是反射?使用方法有哪些?,信息,培训,状态,术语,检测,反射,属性,对象,字符串,方法,反射这个术语在很多语言中都存在,并且存在大量的Python中有哪些方法可以解压文件?
Python中有哪些方法可以解压文件?,工具,系统,工作,培训,文件,文件夹,方法,窗体,不同于,以下内容,在Python学习和日常使用中,很容易造成文件过大Python列表类型list合并有哪些方法
Python列表类型list合并有哪些方法?,培训,方法,列表,可能会,数组,切片,下文,字符串,数据类型,请看,在Python编程语言中,有各种数据类型,比如字符零基础学习Python的四种方法
零基础学习Python的四种方法,基础,代码,基础知识,培训,发展,时间,知识,书籍,初学者,练习,近年来,随着移动互联网的发展,对Python人才的需求越来如何在Python中定义类方法和修改类
如何在Python中定义类方法和修改类属性?,代码,方法,培训,对象,实例,定义,结果,示例,赋值,属性,Python中的类还可定义使用@classmethod修饰的类提高Python 效率的 5 种高级方法
提高Python 效率的 5 种高级方法,代码,数字,函数,有限,设备,项目,工具,培训,列表,内存,任何编程语言的高级特征通常都是通过大量的使用经验才关于Python的高效学习方法
关于Python的高效学习方法,基础,培训,资料,质量,技术,系统,情况,学习方法,高效,初学者,今天给大家分享一下Python高效的学习方法,尽管每个人的学习python要注意的方法事项
学习python要注意的方法事项,代码,基础,环境,网络,时间,地方,分析,评论,人工智能,数据,python入门比较建议找一个视频课程,花一周时间快速过掉python修改列表元素有什么方法
python修改列表元素有什么方法,代码,数据,步长,元素,基础,位置,培训,列表,切片,方法,增删改查是处理数据最常见的方法,前两种说过了,这里就要说