作为字符串或字符串常量的枚举

本文关键字:字符串 枚举 常量 | 更新日期: 2023-09-27 17:57:20

我看到了这篇博文,我只是好奇。我通常总是对应用程序中的共享字符串使用 constants

我想知道你认为以前一种方式的利弊是什么?

作为字符串或字符串常量的枚举

我会坚持使用字符串常量,因为它们很简单,不需要任何反射来获取值。

那里的方法使用反射来提取字符串值。如果您正在做一些对性能至关重要的事情,请不惜一切代价避免这种情况......如果您想要速度,常量是要走的路。

更重要的是,通过使用那里的方法,你严重伤害了编译器优化器,因为每个"常量"现在都变成了一个"方法调用"。

这在很大程度上取决于您存储的字符串类型。

如果它类似于向用户显示的文本,那么您首先不应该使用常量。只读字段更好,资源更好。

我在建议的解决方案中看到的主要缺点是它将非常不直观:当我看到字符串常量或字段的使用时,我立即知道发生了什么。如果我看到SomeEnum.SameValue.GetStringValue(),我会认为它几乎做了ToString()会做的事情,而不是一些有趣的事情。

此外,使用这样的反射会慢得多,但这对你来说可能无关紧要。