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

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(使用前将#替换为@)

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

  • 转换BitmapImage后内存未释放

    我遇到以下 C 测试 代码的问题 public static void TestBitmap2ByteArray BitmapImage bitmap JpegBitmapEncoder encoder new JpegBitmapEnco
  • 使用 ITextsharp 将 Html 导出为 PDF

    我已经尝试了下面的代码 我也遇到了错误 我正在使用最新的 DLL String strSelectUserListBuilder h1 My First Heading h1 p My first paragraph p String ht
  • C-为什么char c=129会转换成-127?

    如果我们分配 128到 char 变量 然后将其转换为 128因为二进制等价 10000000 first bit tells sign 二进制等价于129 is 10000001 它将转换成什么值 字符c 129 谢谢 S 实际上有几种可
  • 从 C# 检测 powerpoint 形状上的事件

    是否有可能检测在 Powerpoint 形状 例如箭头 上发生的事件 到目前为止 我发现唯一的可能性是 selectitemchanged beforerightclick 和 beforedoubleclick 但无法找到检测其他内容的方
  • 去除字符串的最佳方法是什么?

    我需要具有最佳性能的想法来删除 过滤字符串 I have string Input view 512 3 159 删除 view 和 的最佳性能方法是什么 和引号 我可以做这个 Input Input Replace view Replac
  • 为什么自定义类型变量不保存值MVC

    我正在尝试使用 MVC 5 构建一个网站 我有一个包含 3 个变量的控制器类 public class WorkerController Controller public ViewModel viewModel new ViewModel
  • 即使在 GC Collect 和 WaitForPendingFinalizers 之后,窗口对象在关闭后也未释放?

    这是一个简单的测试应用程序 可帮助了解 WPF 内存使用情况 我想了解的关键是为什么MainWindow即使在关闭并等待 GC 完成之后 仍然被引用并且它的内存没有被释放 参见下面的代码清单 文本 MainWindow Finalizer
  • Spring.NET 和构造函数拦截器

    我正在尝试在构造时对对象进行一些 AOP 并找到了 IConstructorInterceptor 这对于我想要的东西来说是完美的 但它似乎不起作用 http jira springframework org browse SPRNET 2
  • 如何将智能感知添加到我的应用程序中?

    我们的一款产品拥有一种专有的宏语言 通过我们的 Windows 软件进行编辑 我想添加智能感知 但我不知道如何去做 至少不完全重新发明轮子 是否有任何示例代码或第 3 方包至少可以让我开始 它不一定是免费的 该应用程序使用 NET 用 C
  • Confuser .NET 混淆器。安全吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在开发一个应用程序 其中阻止用户反编译代码非常重要 现在 我意识到 如果由经验丰富的程序员执行 大多数 exe 都是可反编译的
  • Java有没有类似微软CHESS的工具?

    是否有类似于 Microsoft 的现有 Java 工具CHESS http research microsoft com chess 或者 CHESS 源代码是否开放 以便我可以尝试将其转换为 Java 谷歌的织线工 http code
  • VBA 有没有办法了解未使用的变量?

    标准 VBA 编辑器中是否有工具 方法或设置来警告已被修改的变量Dim med 但没有被使用 MZ Tools http www mztools com index aspx将搜索您的代码并告诉您哪些内容未被使用 VBA的版本可以找到her
  • 找不到 Microsoft.Office.Interop Visual Studio

    我正在开发一个使用 C 发送电子邮件的应用程序 该应用程序将能够使用邮件模板等 问题是我无法找到任何 Office Interop 引用 这意味着我无法使用 Outlook 我的计算机上安装了 Office 但我也尝试从此链接安装 PIAh
  • 在 .Net 托管的 IronPython 脚本中设置和获取变量

    我正在尝试使用 Net 控制台应用程序中托管的 IronPython 来构建验证规则引擎的原型 我已经将脚本精简到我认为的基础内容 var engine Python CreateEngine engine Execute from Sys
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 使用.Net/C# 计算集合的频率分布

    是否有一种快速 简单的方法来使用 Linq 或其他方式计算 Net 集合的频率分布 例如 任意长的 List 包含许多重复项 遍历列表并计算 跟踪重复次数的巧妙方法是什么 查找列表中重复项的最简单方法是将其分组 如下所示 var dups
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 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