【发布时间】:2020-12-10 12:29:37
【问题描述】:
string MyVar1 = "bilah bilah";
dosometing(MyVar1);
void dosometing(object MyObject)
{
string VarName = nameof(MyObject); // it givess : "MyObject"
}
但我期待“MyVar1”有办法吗?使用动态?还是参考?
【问题讨论】:
-
我认为没有办法,而且我没有看到 任何 实际用例 - 你想达到什么目的?不管是什么,我敢打赌至少有十几种更好的方法。
-
如果调用者是
dosometing("Hello");或dosometing(MyVar1 + AnotherVar);,你期望会发生什么? -
看看这个。可能重复:stackoverflow.com/questions/72121/…
-
您的
MyVar1变量就是这样,一个变量。由于string是一个引用类型,它持有对该文字字符串的引用。在 C# 中,参数是按值传递的,因此引用按值传递并复制到MyObject变量。此时,有两个不同的变量指向同一个对象。除此之外,它们之间没有任何关系。nameof运算符允许编译器为程序员提供范围内的变量(或类或..)的名称。没有办法随心所欲,根本不符合设计
标签: c# object dynamic reflection system.reflection