慎用Enum的ToString

原创 2007年09月29日 13:08:00
慎用Enum的ToString

Enum.ToString() 由 .NET Compact Framework 支持。 
将此实例的值转换为其等效的字符串表示。 

我们常在开发中常用到自定义枚举类型,在某些情况下会用到ToString方法使开发变的便捷
举例:

enum MyEnum
{
    Red,
    Blue,
    Green
}
==========================================================
String prefix = "Prefix";
String postfix = "Postfix";

// tmpEnum 为枚举变量
MyEnum tmpEnum = MyEnum.Red;

String result = prefix + tmpEnum.ToString() + postfix;

这样就可以轻易的组合出所需要的string,但是我们没考虑如下情况:
当程序发布时,要对程序进行混淆处理的,如果该枚举为非public的话,就会被混淆器处理,变成象下面的代码:
enum A
{
    a,
    b,
    c
}
所以在需要用的枚举类型的ToString方法的时候,最好定义一个转换函数,如下:

string MyEnumToString(MyEnum val)
{
    string tmpStr = string.Empty; 
    switch(val) 
    { 
        case MyEnum.Red: 
        tmpStr = "Red"; 
        break; 
        …... 
    } 
    return tmpStr;

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Enum的toString方法

定义一个枚举型的变量(Enum),如:Public Enum Status        Initial = 0        Process = 1 ...

C# Enum,Int,String的互相转换

Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型。如果没有显式声明基础类型,则使用Int32。编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举。     注意:枚举...
  • pzhtpf
  • pzhtpf
  • 2013-07-23 10:50
  • 44980

慎用mysql的enum字段

最近设计自己毕业设计项目的mysql数据库表,起先看了一些数据库设计结构优化推荐表示状态的字段使用enum.在我差不多都决定好时,看了下面这篇博客果断弃用了= = 个人总结: 1.enum 是My...

C# : Enum and overriding ToString on it

I saw two posts on Enums today on Eric Lipperts and Chris Rathjen's blog. Enums are significantly di...

子线程中慎用CString, std::string

今天CODING时遇到了内存泄露问题,发现原因在子线程中,当程序退出的时候,子线程被强行退出(非正常退出),导致内存泄露.于是开始调试,寻找,却没发现自己子线程中有任何的new或者malloc了,郁闷...

python学习之 循环里面慎用copy类

~ 最近在维护公司ERP的发货模块,代码里面有一个这样的问题: 客户订单里面买个3个产品,每个产品10个,但是一次扫描的时候有可能只扫描其中两个产品,每个产品数量不到10个,所以要求在销货的时候不能...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)