(Up有分)如果取得传入参数的名称

ForMyLove 2006-05-01 11:04:22
标题好象没说明白.不好意思
public void show(string str1)
{
System.Console.Write("参数str1名称是:"+str1......);//怎么写???
}

调用:
string newstring = "123";
show(newstring);

想达到的输出效果是:
参数str1名称是:newstring
...全文
209 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang51346 2006-05-03
  • 打赏
  • 举报
回复
public void show(string name, string str1)
{
System.Console.Write("参数str1名称是:"+ name);
}
// 这么处理就完了,多传一参数告诉它名字就是了,在方法中从值中不能知道是什么名的参数的.

ipqn 2006-05-03
  • 打赏
  • 举报
回复
这个没发获得,因为编译后,原来的参数名都已经被替换了!
lowtemper 2006-05-03
  • 打赏
  • 举报
回复
不能用反射,帮你顶一下
Knight94 2006-05-03
  • 打赏
  • 举报
回复
to 就是按你理解的那样,想得到原来的变量名

我前面已经说得很清楚了,是不可能获得的
ForMyLove 2006-05-03
  • 打赏
  • 举报
回复
谢谢各位的关注
AhBian 2006-05-02
  • 打赏
  • 举报
回复
再仔细看了一下,我的答复有错误。

在以下代码中:
string newstring = "123";
show(newstring);

public void show(string str1)
{
//在函数中,是无法获得str1原先的名字
}

的确,是不可能输出为以下形式:
参数str1名称是: newstring

我所说的方法,只能是方法参数定义中的名称: str1
这是有办法动态获取的。

AhBian 2006-05-02
  • 打赏
  • 举报
回复
请查阅一本书:《.NET Essential》
中文译名: 《.NET 本质论》

此书中有介绍如何获取方法传入参数的实际名称的实现方法。
这涉及到 .NET 的底层消息机制,因为本人工作中尚未需要此方面的功能,所以暂时没有进行任何深入的研究,所以一时也写不出有参考价值的代码来。深表谦意。
webwait 2006-05-02
  • 打赏
  • 举报
回复
mark
wuyi8808 2006-05-02
  • 打赏
  • 举报
回复
调用:
string newstring = "123";
show(newstring);

想达到的输出效果是:
参数str1名称是: newstring <----- 变量名是不可能得到的.
diandian82 2006-05-02
  • 打赏
  • 举报
回复
好像没有可能,除非添加记录变量
pshy 2006-05-02
  • 打赏
  • 举报
回复
顶:)
ForMyLove 2006-05-02
  • 打赏
  • 举报
回复
Knight94(愚翁)
就是按你理解的那样,想得到原来的变量名
Knight94 2006-05-02
  • 打赏
  • 举报
回复
to 给个建议吧

你具体说说想做什么
wcmj 2006-05-02
  • 打赏
  • 举报
回复
这个好像不好搞吧,我也不会
gnhao 2006-05-01
  • 打赏
  • 举报
回复
思归的:
if you mean to get the value....


if it is a local variable, then no way, if it is a member variable of your page class, you can try to use Reflection

Imports System.Reflection

dim s as string = "aa"
dim fi as FieldInfo = Page.GetType().GetField(s, BindingFlags.Instance Or BindingFlags.NonPublic)

if not (fi is nothing) then
Response.Write(fi.Name & "=" & fi.GetValue(Page))
end if
gnhao 2006-05-01
  • 打赏
  • 举报
回复
哦,明白了,我想一下
sky592 2006-05-01
  • 打赏
  • 举报
回复
楼主想要的是、参数的变量的名字是吧!
echoxue 2006-05-01
  • 打赏
  • 举报
回复
System.Console.WriteLine("参数str1名称是:\t{0,8:s}",str1);
gnhao 2006-05-01
  • 打赏
  • 举报
回复
你的问题不是解决了吗?
你想要的是不是
override ToString()?
ForMyLove 2006-05-01
  • 打赏
  • 举报
回复
楼上的,给个建议吧
加载更多回复(3)

110,539

社区成员

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

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

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