获取变量(非硬编码)名称?

2024-01-12

我正在寻找一种检索变量名称的方法,因此我不必在需要时使用硬编码声明(对于属性名称等):

我几乎不相信这是可能的;也许有人有解决方案。 注意:即使不是变量,属性也会移动。

'Pseudo:
Module Module1

    Sub Main()
        Dim variable = "asdf"
        Dim contact As New Contact

        Dim v1 = GetVariableName(variable) 'returns variable
        Dim v2 = GetVariableName(contact.Name) 'returns Name

    End Sub

    Class Contact
        Public ReadOnly Property Name()
            Get
                Return Nothing
            End Get
        End Property
    End Class

    Public Function GetVariableName(variable As Object) As String
        ':}
    End Function

End Module

欢迎用 VB 或 C# 提供答案。


哦,有一个简单的解决方案,使用表达式树这里是一个例子,只需适应你在c#中的需求

string GetPropertyName<T>(Expression<Func<T>> property)
{
    MemberExpression ex = (MemberExpression)property.Body;
    string propertyName = ex.Member.Name;
    return propertyName;
}

现在你可以做

String example = null;
String propertyName = GetPropertyName(()=>example.Length);
//propertyName == "Length"

我第一次看到这个,真是一个启示! ;)

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

获取变量(非硬编码)名称? 的相关文章

  • 如何将 ConcurrentDictionary 转换为字典?

    我有一个 ConcurrentDictionary 对象 我想将其设置为 Dictionary 对象 不允许在它们之间进行转换 那么我该怎么做呢 The ConcurrentDictionary
  • 在这种情况下垃圾收集器会做什么? [复制]

    这个问题在这里已经有答案了 我试图了解 GC 将如何行动的两种情况 1 有两个对象 object1 和 object2 object1 引用了 object2 object2 引用了 object1 现在 这两个对象都没有被使用 GC 可以
  • 如何将字符串解析为 UNIQUEIDENTIFIER?

    我正在编写一个实体框架 LINQ 查询 其中我想将字符串解析为 UNIQUEIDENTIFIER 又名 GUID 作为WHERE clause public IEnumerable
  • 如何在 WPF 应用程序中实现气球消息

    我们想使用气球消息 如UX Guide http msdn microsoft com en us library aa511451 aspx来自微软 我发现一些示例使用 Windows 窗体中的本机代码 但本机代码需要组件的句柄 这对于
  • 使用 ContractNamespace 属性设置 WCF DataContract 命名空间

    在设计我的服务时 我决定要自定义出现在生成的 WSDL 中的名称空间 对于数据合同 我遇到了合约命名空间 http msdn microsoft com en us library system runtime serialization
  • 使用 Sphinx 时,如何记录没有文档字符串的成员?

    我正在为我发布的包编写文档 我发现您的文档越全面 人们就越容易找到您的包来使用 废话 实际上 我在充满爱心地编写代码的所有功能和细节方面获得了很多乐趣 然而 我对如何为类级变量编写与 Sphinx 兼容的文档感到完全困惑 特别是 我有一些e
  • 从同步上下文调用异步方法

    我在代码中通过 HTTP 调用服务 最终使用 HttpClient SendAsync 方法 然后从 WebAPI 控制器操作调用此代码 大多数情况下 它工作得很好 测试通过 但是当我在 IIS 上部署时 我遇到了死锁 因为异步方法调用的调
  • C# 无法访问已释放的对象

    我正在制作一个服务器 客户端应用程序 我将服务器套接字设置为侦听 并设置 BeginAccept 方法 当我关闭服务器套接字 Socket Close 以关闭服务器时 BeginAccept 方法的异步回调方法抛出异常 我检查了异常 发现异
  • 为什么要加密 ASP.NET 中的查询字符串?

    我正在开发一个用 C ASP NET 编写的 Web 应用程序 该应用程序的原始设计者选择使用加密的查询字符串和Viewstate控制应用程序的 安全 和 状态 在此之前 我来自 GET POST 世界 我没有很好的基础来理解为什么人们会经
  • typedef 结构体指针定义

    我对 C 很陌生 并且对所有指针的东西都有一些问题 我写了这段代码 typedef struct edgeitem double weight EDGE ITEM pEDGE ITEM also declaration of a point
  • 为什么在 C++ 中将变量定义和初始化分开?

    我目前正在研究一些相当古老的 C 代码 经常发现类似的东西 int i i 42 or Object someObject NULL someObject new Object or even Object someObject someO
  • 为什么 System.Math 有 Sin、Cos 等外部方法?

    MethodImpl MethodImplOptions InternalCall public static extern double Sin double a 其原因何在 MethodImplOptions InternalCall表
  • 从标签 ID 更改整个 gridview 单元格颜色

    试图弄清楚当我有标签 ID 时如何更改 gridview 单元格的背景颜色
  • 从 SQL Server 读取十进制值时出现溢出异常

    我想知道这是一个错误还是我做错了什么 我正在加载值SqlDataReader来自 SQL Server 2008 数据库 但在某些情况下 它无法将 SQL 值转换为 net 值 NET 4 0 我已将其追溯到一个测试用例 它演示了实际问题
  • .NET Core == .NET Framework 5 吗?

    我一直在寻找书籍来研究最新的 NET Framework 据我所知 NET 最高为 4 6 但 ASP NET 最高为 5 核心 NET Core 是 NET 5 的名称还是我们目前仍使用 NET 4 6 去引用斯科特 汉塞尔曼 http
  • 这个 SQL 查询有什么问题?

    在过去的一个小时里 我一直在尝试此查询的不同变体 但我在用户名处收到错误 并且用户名只是一个普通字符串 其中的用户名是我从不包含特殊字符或任何内容的 xml 文件中获取的 我正在使用 SLQ 紧凑型 3 5 P S 我尝试使用 而不是 us
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 如何在 SqlDataReader.Read() 期间从死锁异常中恢复

    我的 NET 应用程序的事件日志显示 它在从 Sql Server 读取数据时偶尔会出现死锁 这种情况通常非常罕见 因为我们已经优化了查询以避免死锁 但有时仍然会发生 过去 我们在调用ExecuteReader函数在我们的SqlComman
  • 类似于 .NET Framework 2.0 的 MEF(托管可扩展性框架)

    我在自己的项目中使用了 MEF 并且非常喜欢它 这很容易 在弄清楚我们的awkwardAPI模型 它刚刚工作了 现在我需要 NET Framework 2 0 类似的东西 有没有可以在 NET Framework 2 0 下工作的类似项目
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这

随机推荐

  • Ruby 和指针

    我正在为一个小游戏编写一个地下城生成器 地下城由房间组成 Aroom has connections到其他房间 room connections room a room b and room number 1 unique id 现在我需要
  • 无法在 Argo 工作流程中使用 jsonpath 函数作为输出参数

    我正在使用一个工作流程jsonpath函数用于输出参数从 json 字符串中提取特定值 但失败并出现此错误Error exit code 255 这是我的工作流程 apiVersion argoproj io v1alpha1 kind W
  • 如何处理库中需要在库外部设置的变量?

    我在多个项目中使用 Datomic 是时候将所有通用代码移动到一个小型实用程序库中了 一项挑战是处理共享数据库uri 大多数操作都依赖于它 但必须由使用该库的项目进行设置 我想知道是否有一种行之有效的方法可以做到这一点 以下是我考虑过的一些
  • 如何根据屏幕尺寸使用 jQuery 隐藏 div

    我正在编写一个响应式 WordPress 主题 并且我想根据查看器的屏幕分辨率隐藏 div 我在 div 中有一个来自 BuySellAds 的 468 像素 x 60 像素的广告横幅 我想对在智能手机或平板电脑上查看该网站的观众隐藏它 我
  • 并行进程的通信:我有哪些选择?

    我正在尝试更深入地研究 R 例程的并行化 对于一堆 工人 进程的通信 我有什么选择 沟通between各自的workers 的沟通workers与 master 过程 AFAIU 不存在 共享环境 共享内存 主进程和所有工作进程都可以访问
  • 气流如何安装?

    我好像在做某事 错误的 https pythonhosted org airflow start html https pythonhosted org airflow start html export AIRFLOW HOME airf
  • 如何在 AJAX/jQuery POST 成功时返回 PHP 变量

    如何在 PHP 中使用 AJAX 返回变量 我目前正在控制器中使用 echo 来显示价格dropdown change in a div称为价格 但是我有一个隐藏字段 我需要在更改时将行 ID 返回到该隐藏字段 如何在 jQuery 中分配
  • Plotly dash 在重新加载时刷新全局数据

    想象我有一个dash我希望在页面重新加载时刷新全局数据的应用程序 我正在使用一个函数来提供所描述的布局here https dash plotly com live updates 但是 我不确定应该如何 在哪里定义df这样我就可以在回调中
  • 动态生成条件JS

    我正在寻找在循环内动态生成条件的最佳方法 一个价值千字的示例 所以这是我的代码 var condition data label Test for var key in andArray condition andArray key for
  • ctypes 中的 find_library()

    我正在尝试使用 ctypes 中的命令 find library 但出现错误 我不明白其原因 我正在 Windows 上工作 这是代码 import ctypes from ctypes util import find library i
  • 仅在 Google Chrome 中显示“表单控件无效”

    下面的代码在 Safari 中运行良好 但在 Chrome 和 Firefox 中 表单将无法提交 Chrome 控制台记录错误An invalid form control with name is not focusable 有任何想法
  • 原因:com.android.dex.DexException:多个dex文件在Studio 3.0中定义Lorg/apache/commons/io/IOCase

    我正在开发一个项目 这在 Android studio 2 3 3 上工作得很好 但是当我更新我的安卓工作室3 0 https developer android com studio index html并打开我的项目 然后它无法组装 并
  • 如何对仅客户端(本地)Meteor 集合进行排序

    我只有客户端 本地 Meteor 集合定义如下 coffeescript 产品 new Meteor Collection null 然而 当我尝试 find 提供排序参数时 Meteor 告诉我不支持本地集合的排序 这是可以理解的 我想知
  • 结合group by和count mysql

    我需要使用 group by 找出表中的所有状态 SELECT status FROM table GROUP BY status 然后统计找到的结果 SELECT count id WHERE status STATUS 所以像这样的表
  • 抑制 ddl 创建脚本中的 ORA-00942 错误

    假设您生成 ddl 以通过 Hibernate SchemaExport 等创建所有数据库表等 您得到的是一个开头以 drop 语句开头的脚本 没问题 因为我想要这个 但运行此脚本会在 Oracle 数据库上运行时产生大量 ORA 0094
  • 理解OpenCV的unactor函数

    我希望使用为相机计算的畸变系数来消除图像畸变 而不更改相机矩阵 这正是undistort 确实如此 但我想将输出绘制到更大的画布图像上 当我尝试这个时 Mat drawtransform getOptimalNewCameraMatrix
  • 为什么使用 Intranet 站点的兼容模式

    我是一名 Mac 用户 网页设计师 试图了解 IE 11 的 以兼容模式显示 Intranet 站点 选项 我有一个客户 一家建筑公司 曾经在他们的 Windows 服务器上托管他们的旧网站 我没有开发的 HTML 网站 我最近为他们启动的
  • 找不到名为“MainStoryboard_iPad”的故事板

    我无法在模拟器中运行我的项目 因为我收到此错误 找不到名为 MainStoryboard iPad 的故事板 但故事板就在那里 谢谢 我通过以下步骤在我的 iPad 应用程序中成功解决了这个问题 检查构建阶段 编辑 Info plist 文
  • C# 最快的 2 组排序值并集

    合并两组排序值的最快方法是什么 速度 big O 在这里很重要 不清楚 假设这已经被执行了数百万次 假设您不知道值的类型或范围 但有一个有效的方法IComparer
  • 获取变量(非硬编码)名称?

    我正在寻找一种检索变量名称的方法 因此我不必在需要时使用硬编码声明 对于属性名称等 我几乎不相信这是可能的 也许有人有解决方案 注意 即使不是变量 属性也会移动 Pseudo Module Module1 Sub Main Dim vari