很久没来了,问一个比较有挑战性的问题

lindping 2008-12-12 04:37:54
class a
{
public string name;
}

public getProName(string proValue)
{
.......
}

如何实现 getProName(a.name) == "name" ?

用文字描述的话,就是在某个方法里,当它被调用的时候,假如参数是某个对象的属性,那么在方法里 如何获取该变量在它的类里的成员名称?能实现否?
...全文
148 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lchh0917 2008-12-12
  • 打赏
  • 举报
回复
确实有挑战性,帮顶~
diffmaker 2008-12-12
  • 打赏
  • 举报
回复
比较晕啊
chuxue1342 2008-12-12
  • 打赏
  • 举报
回复
你只是知道值?如何知道属性呢?
HDNGO 2008-12-12
  • 打赏
  • 举报
回复
反射~然后慢慢扣~
yanrabbit163 2008-12-12
  • 打赏
  • 举报
回复
没看明白你想要挑战什么?
wangkk125 2008-12-12
  • 打赏
  • 举报
回复
好深啊
我游了半天没到底
flyjimi 2008-12-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 lindping 的帖子:]
class a
{
public string name;
}

public getProName(string proValue)
{
.......
}

如何实现 getProName(a.name) == "name" ?

用文字描述的话,就是在某个方法里,当它被调用的时候,假如参数是某个对象的属性,那么在方法里 如何获取该变量在它的类里的成员名称?能实现否?
[/Quote]
你好歹得告诉getProName(),传进来的值来自那个对象啊,就这样一个string参数,搞不定。谁知道传进来的string是a.name还是b.id。
xieyongbao 2008-12-12
  • 打赏
  • 举报
回复
觉得还是用反射,然后用遍历,判断是否属性等于name
System.Reflection.PropertyInfo[] properties = a.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
foreach (System.Reflection.PropertyInfo item in properties)
{
string name = item.Name;
if(name=="name")
{
//是该类里的成员
break;
}
}
zgke 2008-12-12
  • 打赏
  • 举报
回复
getProName(a.name)

getProName获的上name的VALUE 没看出来和name有什么关系~~
wangping_li 2008-12-12
  • 打赏
  • 举报
回复
class a
{
public string name;
public string password;
}

public getProName(string proValue)
{
.......
}
如果上面这种方式,你想通过getProName(a.name)来得到a.password的话
可以通过反射实现,通过a.name得到类a,然后后里面的public辽段
wangping_li 2008-12-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 lindping 的帖子:]
class a
{
public string name;
}

public getProName(string proValue)
{
.......
}

如何实现 getProName(a.name) == "name" ?

用文字描述的话,就是在某个方法里,当它被调用的时候,假如参数是某个对象的属性,那么在方法里 如何获取该变量在它的类里的成员名称?能实现否?
[/Quote]
你这样调用的时候getProName里面string proValue就已经是a.name了
getProName只是接收一个string的变量.你传了a.name后它自然就得到了啊
不知道LZ是何意
aith1986 2008-12-12
  • 打赏
  • 举报
回复
要通过a.name知道类a里的name的名称,的确有挑战性
cpio 2008-12-12
  • 打赏
  • 举报
回复

调的时候不就用了name了吗?

对于getProName来说,它得到的只是string
new_Stone 2008-12-12
  • 打赏
  • 举报
回复
您是说通过a.name获得类a?
反射可以.

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧