获取变量或参数的名称[重复]

2023-12-11

我想获取变量或参数的名称:

例如,如果我有:

var myInput = "input";

var nameOfVar = GETNAME(myInput); // ==> nameOfVar should be = myInput

void testName([Type?] myInput)
{
   var nameOfParam = GETNAME(myInput); // ==> nameOfParam should be = myInput
}

我怎样才能在 C# 中做到这一点?


C# 6.0 之前的解决方案

您可以使用它来获取任何提供的成员的名称:

public static class MemberInfoGetting
{
    public static string GetMemberName<T>(Expression<Func<T>> memberExpression)
    {
        MemberExpression expressionBody = (MemberExpression)memberExpression.Body;
        return expressionBody.Member.Name;
    }
}

要获取变量的名称:

string testVariable = "value";
string nameOfTestVariable = MemberInfoGetting.GetMemberName(() => testVariable);

要获取参数的名称:

public class TestClass
{
    public void TestMethod(string param1, string param2)
    {
        string nameOfParam1 = MemberInfoGetting.GetMemberName(() => param1);
    }
}

C# 6.0 及更高版本的解决方案

您可以使用nameof参数、变量和属性的运算符:

string testVariable = "value";
string nameOfTestVariable = nameof(testVariable);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取变量或参数的名称[重复] 的相关文章

随机推荐

  • 创建单元测试用例时 PHPUnit 错误

    我有控制器类 UserController 在控制器文件夹中 扩展BaseController 存在于应用程序文件夹中 当我右键单击并选择选项时 Create PHPUnitTests 它给了我以下错误 phpunit Fatal erro
  • 如何检查 @patched-out python 方法是否被调用而不改变其行为?

    我一直在使用Pythonmock我的测试用例的模块 我经常用以下内容装饰我的测试用例 patch my method 装饰师 然后在测试用例的主体中 我设置了 return value属性或 side effect修补方法上的属性来模拟其行
  • 为什么 document.GetElementById 返回 null [重复]

    这个问题在这里已经有答案了 我一直在使用document GetElementById 成功了 但从一段时间开始我就无法让它再次工作了 看下面的代码 div div
  • 从 JavaScript 中的图像读取像素数据会返回半透明像素的意外结果

    我正在 JavaScript 中从 png 文件读取 RGBA 数据 为此 我在画布上绘制图像并使用 getImageData 数据与我的预期不同 测试图像 https raw githubusercontent com FlorianLu
  • “无法获取文档,因为客户端处于离线状态”Firestore 模拟器出现 Firebase 错误

    编辑 我知道这是模拟器的问题 因为没有模拟器它也能正常工作 我正在关注一个Next js 课程我正在使用 Firebase 模拟器 它建议这样做 但没有教程 因为它非常简单 并且我正在尝试为用户从 firestore 读取一些数据 但它总是
  • iOS 中的 Opengl ES 1.x 发光效果

    我目前正在开发一款 iOS 游戏 现在我想要的是一个用opengl绘制任意发光和半透明椭圆的函数 这有点棘手 因为我使用的是 cocos2d 1 1 它不支持 opengl es 2 0 所以没有着色器 这是我所做的 首先是绘制挤出线的函数
  • 意外的无符号整数行为

    我在以下代码中遇到了这种意外的输出 其中我正在验证当所有位都设置为 1 时 short 和 int 类型的无符号形式的最大值 以十进制形式表示 include
  • TypeError: __array__() 采用 1 个位置参数,但给出了 2 个(图像分类 Keras)

    如何解决这个问题 我尝试过设置dtype None in the image img to array method import tensorflow as tf from tensorflow import keras from ten
  • 如何将曲面拟合到一组数据点并获得曲面方程

    乌班图 ROS 思维 Python程序 我正在尝试获取适合点云数据中的一组点的表面方程 数据来自激光雷达扫描仪 我在 rviz 中选择整个扫描的一部分 并获得该选择的坐标选定表面的图片 所选曲面并不总是如此线性 因为材质中可能存在轻微的曲线
  • 响应式方块网格

    我想知道如何创建一个布局响应方块 每个方格都会有垂直和水平对齐内容 具体示例如下 新解决方案 2022 自从写完这个答案以来 CSS 已经发生了变化 我们现在有几个属性可以大大简化方形网格的代码 The grid属性来处理网格布局 MDN
  • 调用Service的onDestroy()

    我想打电话 onDestroy android中的Service方法 我已经在互联网上搜索了很多 很多答案都像是如果 服务强制停止或以某种方式它的 onDestroy 将永远不会调用 但我真的需要知道服务何时停止 我的项目是关于音乐播放器的
  • 检查元素在 DOM 中是否可见

    有什么方法可以检查元素在纯 JS 无 jQuery 中是否可见 那么 给定一个 DOM 元素 我如何检查它是否可见 我试过 window getComputedStyle my element display 但它似乎不起作用 我想知道我应
  • 手机锁定时如何显示弹出活动或对话框?

    我试图在手机锁定时显示活动或对话框 我尝试过使用 WakeLock 但它不起作用 并且只有在手机解锁后我才能看到活动 执行此操作的正确方法是什么 要在不关闭键盘保护的情况下显示活动 请尝试以下操作 getWindow addFlags Wi
  • 设置 ProGuard 来混淆局部变量和参数

    我似乎找不到在被混淆的类的方法内部混淆局部变量的设置 这是我反编译的一个类的摘录 其中有一些明显缺失的部分 理想情况下 方法的参数和局部变量也将被混淆 public class eA extends gu private final gt
  • SKAction playSoundFileNamed 来自 Singleton

    我有几个级别都使用相同的音效 我没有在每个级别都使用相同的代码 而是将所有声音合并到一个单例类中 但是 当我从其他类运行该方法时 将其放在单例中不会播放声音 我没有任何错误或警告 当我在每个类中都有相同的代码时 我播放声音没有问题 问题 D
  • Mac 上的 Java 类路径是如何设置的?

    Mac 上的 Java 类路径是如何设置的 既然您用以下标签标记了问题tomcat 我假设您正在运行 Java Servlet Web 应用程序 在这种情况下 类路径覆盖了 JAR 文件 WEB INF libwebapp 的文件夹和所有类
  • Python:“NoneType”对象不可下标“错误[重复]

    这个问题在这里已经有答案了 我是 Python 数据库的新手 因此为了练习一些关键技能 我正在构建一个登录屏幕 将用户名和散列密码写入数据库 然后根据数据库中的内容检查用户的输入 但是 当尝试从数据库中提取用户名和密码并将其存储在变量中时
  • css 上的 Margin-Right 不起作用

    我在学校期间一直在搞编码 因为它是我在学校最感兴趣的事情 并且在学年的大部分时间里我一直在自学 Html Css 和 Js 我一直在重新创建学校的网站 但遇到了一些问题 我的 CSS Margin Right 命令不起作用 我一直在尝试集中
  • iOS:SDWebImageManager 不缓存图像

    我正在使用创建幻灯片UIImageView 并且图像链接位于数组中 所以当我这样做时 我了解到SDWebImageManager让我们只点击 URL 一次 然后它就会缓存图像以供以后使用 但我在应用程序中监视的是 我相信第一个图像已被缓存
  • 获取变量或参数的名称[重复]

    这个问题在这里已经有答案了 我想获取变量或参数的名称 例如 如果我有 var myInput input var nameOfVar GETNAME myInput gt nameOfVar should be myInput void t