黑马程序员技术交流社区
标题: 枚举在后台的实例化 [打印本页]
作者: 忘忧草 时间: 2012-4-24 23:17
标题: 枚举在后台的实例化
usingSystem;
usingSystem.Windows;
namespacegosoa.com.cn
{
class MyFirstClass
{
static void Main()
{
user userTemp=user.gread;
Console.WriteLine(userTemp.ToString());
}
public enum user
{
Age=18, //年龄
gread=2, //年级
fatherAge=65 //父亲的年龄
}
}
}
在这个示例中,输出的是gread 字符串。为什么呢?因为枚举在后台会实例化为派生于
System.Enum 的结构,这表示可以对其进行调用方法,执行一些操作。上面的例子就是一个
说明。
谁能结合这个例题详细讲一下“枚举在后台会实例化为派生于System.Enum 的结构”是什么意思?
作者: 海继峥 时间: 2012-4-24 23:53
任何enum方法调用将有可能消耗内存字节=sum(枚举值名称字符个数)*2+sum(枚举值个数)*4
因为,任何使用enum方法的行为都会增加System.Enum type object内部的哈希表的对enum object的names和values的缓存(已经在缓存的枚举类型不再缓存),缓存上限是101;
达到上限后再调用新的enum将导致缓存的清空,然后必须对所有的之前的缓存在未来的调用中重新进行缓存。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |