首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取C#枚举描述与python.net?

获取C#枚举描述与python.net?
EN

Stack Overflow用户
提问于 2019-01-31 16:57:48
回答 1查看 1.4K关注 0票数 2

我使用的是python.NET和C# API。dlls加载ok,我可以找到我需要的枚举,但无法找到访问它的值、名称和描述的正确语法。

我对C#不太熟悉,但我认为它有点像

代码语言:javascript
复制
public enum Things 
{
    X1,
    X2,
    X3,
    X4
}

我试着做相当于。

代码语言:javascript
复制
var values = Enum.GetValues(typeof(Things));

虽然我也想访问名称和描述。有一个'GetNames‘方法,和一个’重载‘方法,我认为这可能是所需的。

我坚持在python.Net中使用未绑定方法所需的语法。

代码语言:javascript
复制
In[1]: Things.GetNames
Out[1]: <unbound method 'GetNames'>

我可以得到个人的价值

代码语言:javascript
复制
In[2]: Things.X1
Out[2]: 21

但我真的很想了解使用Python.NET获取这些信息的正确方法--以及我目前找不到的描述。

ETA1:弄清楚我做错了什么。可以获得以下值和名称:

代码语言:javascript
复制
from System import Enum
values = Enum.GetValues(Things)
names = Enum.GetNames(Things)

上面返回的是System.String[],但我可以在列表组合中对它们进行迭代,以获得名称和值的列表。

但还是不知道怎么得到描述。这方面没有任何明显的方法。

代码语言:javascript
复制
In [17]:dir(Enum)
Out[17]: 
['CompareTo',
 'Equals',
 'Finalize',
 'Format',
 'GetHashCode',
 'GetName',
 'GetNames',
 'GetType',
 'GetTypeCode',
 'GetUnderlyingType',
 'GetValues',
 'HasFlag',
 'IsDefined',
 'MemberwiseClone',
 'Overloads',
 'Parse',
 'ReferenceEquals',
 'ToObject',
 'ToString',
 'TryParse',
 '__call__',
 '__class__',
 '__delattr__',
 '__delitem__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__getitem__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__iter__',
 '__le__',
 '__lt__',
 '__module__',
 '__ne__',
 '__new__',
 '__overloads__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__setitem__',
 '__sizeof__',
 '__str__',
 '__subclasshook__']

ETA2:我使用的方法很好,但是这个API被证明是错误的。

EN

回答 1

Stack Overflow用户

发布于 2019-11-11 16:58:23

尝试以下几点:

代码语言:javascript
复制
from System import Enum

Enum.GetName(Things, 21) # returns "X1"
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54465612

复制
相关文章

相似问题

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