取值问题。。。(没分了。。。)

时间:2022-09-30 21:14:36
var obj =Cache[parms];        
Response.Write(parms);        
Response.Write(obj.Name);
Response.Write(obj.Age);

我在cache中存了一个类对象,现在取出来放入一个var对象中,请问我如何取出属性?

24 个解决方案

#1


up

#2


友情帮顶

#3


引用 2 楼 peng_weida 的回复:
友情帮顶

thanks

#4


你这个是JSON应该做的事情,具体自己去查资料怎么构造JSON字符串以及前端解析JSON字符生成相应的js对象


另外还有个简单方法,不过可能不太灵活

<script>
var myGirl = new Object();
o.Name = '<%=Cache[parms]%>';//最好在后端做个方法,比如GetMyGirlProperty("Name"),做好出错控制。
o.Age= <%=Cache[parms]%>;

使用:
alert(myGirl.Name);

</script>

#5


必须类型转换

#6


写掉了,o.Name = ' <%=Cache[parms].Name%>

#7


转换成你自己的对象就ok了

#8


我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类,
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。
我现在不需要json,只需要取出属性。谢谢

#9


你要知道Cache存的是什么类型 ,然后转换了才能使用属性 不然就是object类的实例对象

#10


引用 8 楼 wangchao813 的回复:
我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类,
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。
我现在不需要json,只需要取出属性。谢谢


还没编译的时候,编译器无法知道你的obj是什么类型,即使你用匿名类型,编译器也只有在运行的时候才能知道obje是什么类型
所以你要想在编码的时候点出Name和Age属性,必须类型转换

#11


引用 9 楼 maddemon 的回复:
你要知道Cache存的是什么类型 ,然后转换了才能使用属性 不然就是object类的实例对象

我是用var接收的。。。谢谢

#12


引用 10 楼 ojlovecd 的回复:
引用 8 楼 wangchao813 的回复:
我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类, 
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。 
我现在不需要json,只需要取出属性。谢谢 



还没编译的时候,编译器无法知道你的obj是什么类型,即使你用匿名类型,编译器也只有在运行的时候才能知道obje是什么类型 
所以你要想在编码的时候点出Name和Ag…

我现在是想,有什么遍历方法可以来遍历var中的运行时属性呢?

#13


引用 12 楼 wangchao813 的回复:
引用 10 楼 ojlovecd 的回复:
引用 8 楼 wangchao813 的回复:
我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类,
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。
我现在不需要json,只需要取出属性。谢谢


还没编译的时候,编译器无法知道你的obj是什么类型,即使你用匿名类型,编译器也只有在运行的时候才能知道obje是什么类型
所以你要想在…

反射可以

#14


引用 13 楼 ojlovecd 的回复:
引用 12 楼 wangchao813 的回复:
引用 10 楼 ojlovecd 的回复: 
引用 8 楼 wangchao813 的回复: 
我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类, 
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。 
我现在不需要json,只需要取出属性。谢谢 


还没编译的时候,编译器无法知道你的obj是什么类型,即使你用匿名类型,编译器也只有在运行的时…

BOSS,效率降低太多了啊。。。

#15


引用 14 楼 wangchao813 的回复:
引用 13 楼 ojlovecd 的回复:
引用 12 楼 wangchao813 的回复:
引用 10 楼 ojlovecd 的回复:
引用 8 楼 wangchao813 的回复:
我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类,
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。
我现在不需要json,只需要取出属性。谢谢


还没编译的时候,编译器无法知道你的obj是什么类型,即使你用匿名类型…

对啊,所以根本没必要啊,那为什么不直接类型转换呢

#16


直接遍历var中的属性我可以写成static,但是用到反射的话有点得不偿失了。直接类型转换也是上面的问题,其实就是懒人给自己找的个借口。。。

#17


不好意思,没表达清楚,直接类型转换方法就不能独立出来了。

#18


由于你存到了Cache里面,它已经把你的类型强制转为object,如果你不再次类型转换的话,我实在想不到别的方法了
等高人来回答吧

#19


不明白楼主的意思,直接转换就行啊

#20


var obj =Cache[parms];        
        Response.Write(parms);
        Response.Write(obj.GetType());
输出类型时 obj是类对象

#21


引用 20 楼 wangchao813 的回复:
var obj =Cache[parms];
Response.Write(parms);
Response.Write(obj.GetType());
输出类型时 obj是类对象

呵呵,你这段代码不能说明任何问题,因为反射得到的是对象的真实类型,不论它被强制转换为什么类型,看看下面代码:

            string str = "ojlovecd";
            object o = str;
            var obj = o;
            Response.Write(obj.GetType().Name);



输出的仍然是String,不会是Object

#22


var 又不能自动判断他以前的类型。。。。。
Cache返回的都是object 管你张三李四。。。
object的实例怎么可能调用别的类的方法。。

#23


string a="abc";
var str = a;

object o = classobj;

1,var class = classobj;

2,var class = o;

#24


#1


up

#2


友情帮顶

#3


引用 2 楼 peng_weida 的回复:
友情帮顶

thanks

#4


你这个是JSON应该做的事情,具体自己去查资料怎么构造JSON字符串以及前端解析JSON字符生成相应的js对象


另外还有个简单方法,不过可能不太灵活

<script>
var myGirl = new Object();
o.Name = '<%=Cache[parms]%>';//最好在后端做个方法,比如GetMyGirlProperty("Name"),做好出错控制。
o.Age= <%=Cache[parms]%>;

使用:
alert(myGirl.Name);

</script>

#5


必须类型转换

#6


写掉了,o.Name = ' <%=Cache[parms].Name%>

#7


转换成你自己的对象就ok了

#8


我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类,
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。
我现在不需要json,只需要取出属性。谢谢

#9


你要知道Cache存的是什么类型 ,然后转换了才能使用属性 不然就是object类的实例对象

#10


引用 8 楼 wangchao813 的回复:
我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类,
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。
我现在不需要json,只需要取出属性。谢谢


还没编译的时候,编译器无法知道你的obj是什么类型,即使你用匿名类型,编译器也只有在运行的时候才能知道obje是什么类型
所以你要想在编码的时候点出Name和Age属性,必须类型转换

#11


引用 9 楼 maddemon 的回复:
你要知道Cache存的是什么类型 ,然后转换了才能使用属性 不然就是object类的实例对象

我是用var接收的。。。谢谢

#12


引用 10 楼 ojlovecd 的回复:
引用 8 楼 wangchao813 的回复:
我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类, 
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。 
我现在不需要json,只需要取出属性。谢谢 



还没编译的时候,编译器无法知道你的obj是什么类型,即使你用匿名类型,编译器也只有在运行的时候才能知道obje是什么类型 
所以你要想在编码的时候点出Name和Ag…

我现在是想,有什么遍历方法可以来遍历var中的运行时属性呢?

#13


引用 12 楼 wangchao813 的回复:
引用 10 楼 ojlovecd 的回复:
引用 8 楼 wangchao813 的回复:
我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类,
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。
我现在不需要json,只需要取出属性。谢谢


还没编译的时候,编译器无法知道你的obj是什么类型,即使你用匿名类型,编译器也只有在运行的时候才能知道obje是什么类型
所以你要想在…

反射可以

#14


引用 13 楼 ojlovecd 的回复:
引用 12 楼 wangchao813 的回复:
引用 10 楼 ojlovecd 的回复: 
引用 8 楼 wangchao813 的回复: 
我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类, 
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。 
我现在不需要json,只需要取出属性。谢谢 


还没编译的时候,编译器无法知道你的obj是什么类型,即使你用匿名类型,编译器也只有在运行的时…

BOSS,效率降低太多了啊。。。

#15


引用 14 楼 wangchao813 的回复:
引用 13 楼 ojlovecd 的回复:
引用 12 楼 wangchao813 的回复:
引用 10 楼 ojlovecd 的回复:
引用 8 楼 wangchao813 的回复:
我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类,
调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。
我现在不需要json,只需要取出属性。谢谢


还没编译的时候,编译器无法知道你的obj是什么类型,即使你用匿名类型…

对啊,所以根本没必要啊,那为什么不直接类型转换呢

#16


直接遍历var中的属性我可以写成static,但是用到反射的话有点得不偿失了。直接类型转换也是上面的问题,其实就是懒人给自己找的个借口。。。

#17


不好意思,没表达清楚,直接类型转换方法就不能独立出来了。

#18


由于你存到了Cache里面,它已经把你的类型强制转为object,如果你不再次类型转换的话,我实在想不到别的方法了
等高人来回答吧

#19


不明白楼主的意思,直接转换就行啊

#20


var obj =Cache[parms];        
        Response.Write(parms);
        Response.Write(obj.GetType());
输出类型时 obj是类对象

#21


引用 20 楼 wangchao813 的回复:
var obj =Cache[parms];
Response.Write(parms);
Response.Write(obj.GetType());
输出类型时 obj是类对象

呵呵,你这段代码不能说明任何问题,因为反射得到的是对象的真实类型,不论它被强制转换为什么类型,看看下面代码:

            string str = "ojlovecd";
            object o = str;
            var obj = o;
            Response.Write(obj.GetType().Name);



输出的仍然是String,不会是Object

#22


var 又不能自动判断他以前的类型。。。。。
Cache返回的都是object 管你张三李四。。。
object的实例怎么可能调用别的类的方法。。

#23


string a="abc";
var str = a;

object o = classobj;

1,var class = classobj;

2,var class = o;

#24