- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我最近看到一个使用这种风格的项目:
(SomeEnum)Enum.ToObject(typeof(SomeEnum), some int)
而不是这种风格:
(SomeEnum)some int
为什么要用前者?这只是风格问题吗?
来自 MSDN:
This conversion method returns a value of type Object. You can then cast it or convert it to an object of type enumType.
https://msdn.microsoft.com/en-us/library/ksbe1e7h(v=vs.110).aspx
在我看来,MSDN 告诉我应该调用 ToObject(),然后我就可以转换了。但我很困惑,因为我知道我可以在不调用该方法的情况下进行转换。 ToObject() 的目的是什么?它完成了哪些简单转换没有完成的任务?
最佳答案
在大多数情况下,简单的转换就足够了。
但有时您只能在运行时获取类型。Enum.ToObject
开始发挥作用了。当您需要动态获取枚举值(或者附加到枚举值的元数据(属性))时,可以使用它。这是一个简单的例子:
enum Color { Red = 1, Green, Blue }
enum Theme { Dark = 1, Light, NotSure }
public static void Main(string[] args)
{
var elements = new[]
{
new { Value = 1, Type = typeof(Color) },
new { Value = 2, Type = typeof(Theme) },
new { Value = 3, Type = typeof(Color) },
new { Value = 1, Type = typeof(Theme) },
new { Value = 2, Type = typeof(Color) },
};
foreach (var element in elements)
{
var enumValue = Enum.ToObject(element.Type, element.Value);
Console.WriteLine($"{element.Type.Name}({element.Value}) = {enumValue}");
}
}
输出是:
Color(1) = Red
Theme(2) = Light
Color(3) = Blue
Theme(1) = Dark
Color(2) = Green
关于c# - 转换为枚举与 Enum.ToObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37891724/
我正在使用 MomentJS,目前 moment().toObject() 输出 { years:2016, months:10, date:3, hours:18, milliseconds:85,
在此answer ,并且用户已在此处向 toObject 方法添加了一些内容: PostModel changedModel = documentChange.getDocument().toObje
当toSource方法用于一个对象时..它会是这样的 ({name:"myname", value:"myvalue"}) 我的问题是如何将它转换回对象?或者更确切地说,只是访问像这样的属性 aler
这是我在 Firestore 中的 Class 数据模型: 这是我的 Kotlin 模型中的 Class。 data class Class( var teacher: String = ""
我有一些 JSon 的一部分,我试图将其映射到 C# 对象。 JSon 的其余部分正确映射到对象,但只有这部分不映射任何内容并且对象值为空。 这是我调用的代码 var data = JObject.P
我最近看到一个使用这种风格的项目: (SomeEnum)Enum.ToObject(typeof(SomeEnum), some int) 而不是这种风格: (SomeEnum)some int 为什
我有类似以下代码: User.findOne(id) .exec((err, user) => { Pets.find(_.pluck(user.pets, 'id'))
出于学习目的,我开始浏览 Node js-express 应用程序代码。遇到以下行,不确定以下行中 getter 和 virtual 的使用。 var pgmsDbObj = chnnlList[c
我想从 firebase firestore 获取数据并使用数据类转换 toObject()。但它不起作用,因为对象已初始化但未设置字段。 这与 Firebase Firestore toObject
所以我们使用的可能是相当旧的 Spring 属性转换风格。基本上,当页面加载时,它会将实体对象转换为其 id 值,然后当页面提交时,它会获取 id 值,通过该 id 查找实体对象并将其填充回来。 示例
当使用字符串属性在 JObject 上调用 ToObject 时,转换日期时间值。 class Program { static void Main(string[] args) {
我在 Android 项目中使用 Firestore。 我有一个 Transaction 模型,它有一个 org.threeten.bp.LocalDateTime 日期 字段。 当我尝试通过调用 d
我正在尝试学习 MongoDB/Node,但我注意到在架构中我经常看到这样的内容: toObject: { virtuals: true } toJSON: { virtuals: true } 这两
据我了解,没有 .toObect()在 JavaScript 中,但它在 mongoose 中用于将 mongoose 文档更改为对象,以便您可以使用 JavaScript 内置函数。 我不知道什么时
Mongoose documentation for toObject列出了功能、选项,并给出了 toObject 的功能示例。 toJSON 的 Mongoose 文档表示选项与 toObject
我想将文档快照转换为 pojo 对象。但我无法理解这个 .toObject() 方法背后的逻辑。有人可以解释一下它的工作原理,即参数、它是如何工作的、我应该如何在 firebase 中使用它。 pri
我在将 JSON 文本序列化为包含 SecureString 变量的对象时遇到问题。我如何序列化以下内容,同时将公共(public)“pwd”变量保留为 SecureString? 假设有以下字符串:
借助 Cloud Firestore,您可以使用 document.toObject(YourClass.class); 将文档转换为对象,其中类的变量与数据库中的变量匹配。但是,如果数据库中的一个变
我正在尝试从 JObject 创建 .NET 对象,但我将对象的所有属性设置为默认值(string 为 null,int 为 0 等) 我正在创建一个简单的 Jobject: var jsonObje
我在原始 Canvas 对象上设置了一些用户定义的属性,当我使用canvas.getActiveObject.toObject()时,结果无法显示用户定义的属性,我该怎么办可以让它显示出来吗?或者是我
我是一名优秀的程序员,十分优秀!