|
|
1
7
另一件事是在反序列化过程中一次又一次地执行这些查找会非常慢。如果要序列化大量数据,这实际上是非常明显的。在这种情况下,您需要从
它不是“通用的”,但它的方式更有效。如果您不喜欢字符串值的重复,那么将代码提取为单独类中的常量。
请注意一些小细节,但您可能需要考虑使用
|
|
|
2
4
就我个人而言,我认为你在滥用语言,并试图以一种他们从未想过的方式使用枚举。我将创建一个静态类RoofStyle,创建一个简单的struct RoofType,并为每个枚举值使用一个实例。 |
|
|
3
3
为什么不创建一个带有静态成员的类型,比如mikerobi说的 例子。。。
顺便说一句。。。
... 枚举支持字段。。。
|
|
4
2
下面是我用于枚举类的基类:
您可以在序列化过程中使用它,如下所示:
要反序列化:
|
|
|
5
1
我不觉得有什么问题-事实上,我也是这么做的。通过这种方式,我实现了枚举的详细性,并且可以定义在使用枚举请求数据时如何转换枚举,例如RequestTarget.Character将导致“char”。 |
|
|
6
1
不能说我见过这样做,但消费者代码相对简单,所以我可能会喜欢使用它。 对我来说,唯一突出的是消费者必须处理空值的可能性-这可能是可以删除的。如果您可以控制这些属性(从它的发音来看,您可以这样做),那么就不应该出现GetDisplayText或GetStringValue返回null的情况,这样您就可以删除它们
为了简化用户代码的接口。 |
|
|
7
1
但是,反射的速度往往很慢,因此如果在紧密循环中使用这些方法,可能会减慢整个应用程序的速度。
您可以尝试将返回值缓存到
|
|
|
8
1
我知道这个问题已经得到了回答,但是不久前我发布了以下代码片段 on my personal blog ,它演示了如何使用扩展方法伪造Java样式的枚举。您可能会发现此方法非常适合您,特别是它克服了通过反射访问属性的开销。
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |