如果一个对象的属性(值类型)作为一个方法的参数,那么在方法里面能不能取得传入属性的特性?
很是困惑这个问题,我想在方法里面知道某一个参数的调用者是谁,比如取得传入该参数的特性信息,C#能不能做到呢?Lisp 好像都可以的,他把参数都当作表达式,而不仅仅是一个值。
最近作一个项目,需要用到该特性,不知道能否用。NET做到,请CSDN的大牛指点!!!
很是困惑这个问题,我想在方法里面知道某一个参数的调用者是谁,比如取得传入该参数的特性信息,C#能不能做到呢?Lisp 好像都可以的,他把参数都当作表达式,而不仅仅是一个值。
最近作一个项目,需要用到该特性,不知道能否用。NET做到,请CSDN的大牛指点!!!
GetNewTable(typeof(login.UserName))
但是如果我的参数要接受很多参数,每个参数都要这个typeof,看起来是不是很不舒服?而且typeof 反射效率是比较低下的。
为啥不能这样呢?
GetNewTable(login.UserName)
大家可能说将属性username作为一个对象而不是一个值类型处理,不错,可以这样,但是如果我要取login.UserName的值怎么办?将UserName再增加一个属性Value,象这样:login.UserName.Value .
这样做不可避免的产生下面的问题:
1,UserName属性是一个引用对象,为了描述login对象所有的属性,势必这个所属对象的Value属性是Object类型的?这样做在真正需要取得这个Value值的时候,不停的进行装箱/拆箱处理,效率太慢了。
2,login.UserName属性在数据邦定控件进行数据绑定的时候如何处理?以上问题搞了很久都不明白,请CSDN的大牛你们指点!·!
StackTrace:表示一个堆栈跟踪,它是一个或多个堆栈帧的有序集合。
StackFrame:提供关于 StackFrame(表示当前线程的调用堆栈中的一个函数调用)的信息。
使用这两个类应该可以实现。
没做过哦
已经丢失了其宿主对象的信息了,不可能通过一个值找到其所属的对象了。不知道事实上是不是这样的,接着听楼下的解释了。