string a="abc";
var str = a;
object o = classobj;
1,var class = classobj;
2,var class = o;
二、
var obj =Cache[parms];
Response.Write(parms);
Response.Write(obj.GetType());
Cache[parms];中存放的是一个类对象,对象中包含两个属性name,age。
Cache[parms]; 返回的是一个object;
obj 但是运行时是可以看到name,age属性的。
是否能够遍历 运行时的obj。
17 个解决方案
#1
实在不好意思,你的代码我看得云里雾里的!
我想确定下,你的代码是JavaScript吗?
var obj =Cache[parms];
Cache[parms];中存放的是一个类对象
那可以这样写吧
for(var a in obj)
{
.....
}
遍历出object中的所有属性
我想确定下,你的代码是JavaScript吗?
var obj =Cache[parms];
Cache[parms];中存放的是一个类对象
那可以这样写吧
for(var a in obj)
{
.....
}
遍历出object中的所有属性
#2
c#
#3
for(var a in obj)
{
alert(obj[a]);
}
#4
Cache[parms]里面存储的是object对象,在写代码的时候确切是什么类型的对象,编译器不知道
但是在你运行调试的时候,编译器也是对他进行强制转换,转换成你保存的对象类型,所以你才可以看到name和Age的属性,
所以在codeing的时候Cache[parms]这里必须进行强制转换,不然编译器不知道啥类型的。
但是在你运行调试的时候,编译器也是对他进行强制转换,转换成你保存的对象类型,所以你才可以看到name和Age的属性,
所以在codeing的时候Cache[parms]这里必须进行强制转换,不然编译器不知道啥类型的。
#5
for in 语句是可以遍历出来的
#6
ding
#7
帮顶
#8
c#,谢谢
#9
string a="abc"; //强类型
var str = a; //弱类型,用他的时候才指定类型
这样的话 str 的值是 abc str 的类型是 string
object o = classobj; //声明一个对象的的引用o 指向clasobj
var str = a; //弱类型,用他的时候才指定类型
这样的话 str 的值是 abc str 的类型是 string
object o = classobj; //声明一个对象的的引用o 指向clasobj
#10
foreach in 是对集合的遍历,你这AGE,Name是对象的属性,而不是集合
#11
呵呵,你还没搞明白啊?
你之所以能在调试状态下看到obj的类型及属性,是因为编译器的svchost.exe,宿主进程为你计算得到的,其原理与我们直接在代码中用反射是一样的
var匿名类型只能根据=后面的类型类推断变量的类型,所以我觉得你要的这个效果除了强制转换和反射之外,很难有其它办法了
你之所以能在调试状态下看到obj的类型及属性,是因为编译器的svchost.exe,宿主进程为你计算得到的,其原理与我们直接在代码中用反射是一样的
var匿名类型只能根据=后面的类型类推断变量的类型,所以我觉得你要的这个效果除了强制转换和反射之外,很难有其它办法了
#12
一,解释下
string a="abc";
var str = a;
var 关键字定义的是匿名变量,就是要靠=右边的来推断出变量的类型 上面的str是字符串的变量了,那么如果你str=123;就会发生编译时错误。
object o = class obj;
object是所有类型的基类,所有的值类型包括引用类型都是间接或者直接继承于object 不信的话你可以obj.点了以后肯定有ToString()方法。
1,var class = classobj;
参考上面的解释
2,var class = o;
参考上面的解释
二、
var obj =Cache[parms];
Response.Write(parms);
Response.Write(obj.GetType());
Cache[parms];中存放的是一个类对象,对象中包含两个属性name,age。
Cache[parms]; 返回的是一个object;
obj 但是运行时是可以看到name,age属性的。
是否能够遍历运行时的obj。
那你可以var obj=(类名)Cache[parms];
要想可以遍历就要实现IEnumerable接口
string a="abc";
var str = a;
var 关键字定义的是匿名变量,就是要靠=右边的来推断出变量的类型 上面的str是字符串的变量了,那么如果你str=123;就会发生编译时错误。
object o = class obj;
object是所有类型的基类,所有的值类型包括引用类型都是间接或者直接继承于object 不信的话你可以obj.点了以后肯定有ToString()方法。
1,var class = classobj;
参考上面的解释
2,var class = o;
参考上面的解释
二、
var obj =Cache[parms];
Response.Write(parms);
Response.Write(obj.GetType());
Cache[parms];中存放的是一个类对象,对象中包含两个属性name,age。
Cache[parms]; 返回的是一个object;
obj 但是运行时是可以看到name,age属性的。
是否能够遍历运行时的obj。
那你可以var obj=(类名)Cache[parms];
要想可以遍历就要实现IEnumerable接口
#13
嘿嘿,谢谢,你说的这些我明白,其实主要一个问题。。。怎么才能遍历出来这个这些运行时属性,(强制转换和反射之外),集思广益,看看有没有别的办法吧。。。
#14
呵呵,那好吧,我帮你顶吧,等牛人来回答
#15
真的很谢谢。
#16
我要遍历的是类对象的属性。。。不是集合啊
#17
up
#1
实在不好意思,你的代码我看得云里雾里的!
我想确定下,你的代码是JavaScript吗?
var obj =Cache[parms];
Cache[parms];中存放的是一个类对象
那可以这样写吧
for(var a in obj)
{
.....
}
遍历出object中的所有属性
我想确定下,你的代码是JavaScript吗?
var obj =Cache[parms];
Cache[parms];中存放的是一个类对象
那可以这样写吧
for(var a in obj)
{
.....
}
遍历出object中的所有属性
#2
c#
#3
for(var a in obj)
{
alert(obj[a]);
}
#4
Cache[parms]里面存储的是object对象,在写代码的时候确切是什么类型的对象,编译器不知道
但是在你运行调试的时候,编译器也是对他进行强制转换,转换成你保存的对象类型,所以你才可以看到name和Age的属性,
所以在codeing的时候Cache[parms]这里必须进行强制转换,不然编译器不知道啥类型的。
但是在你运行调试的时候,编译器也是对他进行强制转换,转换成你保存的对象类型,所以你才可以看到name和Age的属性,
所以在codeing的时候Cache[parms]这里必须进行强制转换,不然编译器不知道啥类型的。
#5
for in 语句是可以遍历出来的
#6
ding
#7
帮顶
#8
c#,谢谢
#9
string a="abc"; //强类型
var str = a; //弱类型,用他的时候才指定类型
这样的话 str 的值是 abc str 的类型是 string
object o = classobj; //声明一个对象的的引用o 指向clasobj
var str = a; //弱类型,用他的时候才指定类型
这样的话 str 的值是 abc str 的类型是 string
object o = classobj; //声明一个对象的的引用o 指向clasobj
#10
foreach in 是对集合的遍历,你这AGE,Name是对象的属性,而不是集合
#11
呵呵,你还没搞明白啊?
你之所以能在调试状态下看到obj的类型及属性,是因为编译器的svchost.exe,宿主进程为你计算得到的,其原理与我们直接在代码中用反射是一样的
var匿名类型只能根据=后面的类型类推断变量的类型,所以我觉得你要的这个效果除了强制转换和反射之外,很难有其它办法了
你之所以能在调试状态下看到obj的类型及属性,是因为编译器的svchost.exe,宿主进程为你计算得到的,其原理与我们直接在代码中用反射是一样的
var匿名类型只能根据=后面的类型类推断变量的类型,所以我觉得你要的这个效果除了强制转换和反射之外,很难有其它办法了
#12
一,解释下
string a="abc";
var str = a;
var 关键字定义的是匿名变量,就是要靠=右边的来推断出变量的类型 上面的str是字符串的变量了,那么如果你str=123;就会发生编译时错误。
object o = class obj;
object是所有类型的基类,所有的值类型包括引用类型都是间接或者直接继承于object 不信的话你可以obj.点了以后肯定有ToString()方法。
1,var class = classobj;
参考上面的解释
2,var class = o;
参考上面的解释
二、
var obj =Cache[parms];
Response.Write(parms);
Response.Write(obj.GetType());
Cache[parms];中存放的是一个类对象,对象中包含两个属性name,age。
Cache[parms]; 返回的是一个object;
obj 但是运行时是可以看到name,age属性的。
是否能够遍历运行时的obj。
那你可以var obj=(类名)Cache[parms];
要想可以遍历就要实现IEnumerable接口
string a="abc";
var str = a;
var 关键字定义的是匿名变量,就是要靠=右边的来推断出变量的类型 上面的str是字符串的变量了,那么如果你str=123;就会发生编译时错误。
object o = class obj;
object是所有类型的基类,所有的值类型包括引用类型都是间接或者直接继承于object 不信的话你可以obj.点了以后肯定有ToString()方法。
1,var class = classobj;
参考上面的解释
2,var class = o;
参考上面的解释
二、
var obj =Cache[parms];
Response.Write(parms);
Response.Write(obj.GetType());
Cache[parms];中存放的是一个类对象,对象中包含两个属性name,age。
Cache[parms]; 返回的是一个object;
obj 但是运行时是可以看到name,age属性的。
是否能够遍历运行时的obj。
那你可以var obj=(类名)Cache[parms];
要想可以遍历就要实现IEnumerable接口
#13
嘿嘿,谢谢,你说的这些我明白,其实主要一个问题。。。怎么才能遍历出来这个这些运行时属性,(强制转换和反射之外),集思广益,看看有没有别的办法吧。。。
#14
呵呵,那好吧,我帮你顶吧,等牛人来回答
#15
真的很谢谢。
#16
我要遍历的是类对象的属性。。。不是集合啊
#17
up