public class Cat
{
public static const int age=1;
}
public enum Dog
{
age=1
} public class Test
{
static void T()
{
int c = Cat.age;
int d = (int)Dog.age;
}
}
很简单的一段代码,一个是引用类型一个是值类型。
分别获取age字段时,值类型的Dog.age反而要强制转换,而引用类型则不用。请问朋友们说说,如果我要用一个对象存放一些不变的数据,是该在上面选择Dog呢还是Cat?说下原因吧
谢谢你的建议
,不过我有个问题,Cat肯定是不存在类型转换的,因为这个同为int,但是dog呢?
int d = (int)Dog.age;
至于枚举里面的age可调试一下看看是什么类型
cat.age相当于一个类对象调用自己的属性
public enum Dog
{
age=1
}
对于上面的代码,Dog.age是Dog类型的,值为age,强制类型转化为int型的时候,值才是 1.
这个是错误的,不好意思。要吧静态变量去掉其实我是想从堆栈上面理解的。
不过我现在也有所了解了,谢谢上面各位