当前位置: 首页 > 编程语言 > C#

如何获取类属性的名称?分享

时间:2023-04-11 03:40:33 C#

如何获取类属性的名称?无论如何我可以获得类属性IntProperty的名称吗?公共类ClassName{publicstaticintIntProperty{get{return0;}}}//类似下面的内容,但我想获取“IntProperty”的字符串ClassName.IntProperty.GetType().Name数据库并动态调用该属性。好像我正在寻找类似于我认为的鸭子打字的东西。谢谢!更新:这是实际代码。它更像是一个工作流程。但是每个任务都被定义为类的属性(类用于对任务进行分组)。publicclassApplicationTask{publicstaticTaskSendIncompleteNotification{get{returnnewTask(a=>Console.WriteLine("SampleTask"),"这是一个什么都不做的示例任务。");因此代码将能够检索类和属性的全名,例如:namespace.ApplicationTask.SendIncompleteNotification并将其保存到数据库中。稍后,代码读取字符串并动态创建一个任务并将其传递给另一个任务执行。ClassName.IntProperty的结果只是一个整数值。一旦它执行并返回结果,IntProperty就什么也没有了。如果您使用的是.NET3.5,则可以使用通常通过lambda表达式创建的表达式树:Expression>exp=()=>ClassName.IntProperty;然后您可以编译并执行该表达式,并单独计算出它正在做某事(在本例中是检索IntProperty)。我不确定这是否适合你想做的事情。如果您确定如何在数据库中保存属性名称,那么GetProperty是继续检索它的方法。也许如果您可以根据您的使用方式提供更多关于该问题的背景信息,我们可能会更有帮助。你只是做了一个表达——如果你能根据你的使用方式来展示它就太好了。编辑:您扩展了属性,但您没有扩展属性。您是否需要直接调用它而不是仅使用Type.GetProperties来获取属性列表并将属性名称列表存储在数据库中?此外,如果您可以展示调用该属性的代码,以及您希望它如何与数据库交互,我们可能会取得更大进展。使用C#6.0,您可以获得它nameof(ClassName.IntProperty)我认为在这种情况下使用GetProperty方法是多余的,因为您需要知道属性名称才能调用该方法。您可以遍历您的属性并提取它们的名称:foreach(PropertyInfopintypeof(ClassName).GetProperties()){stringpropertyName=p.Name;//....}类型objectType=this.GetType();PropertyInfo属性=objectType.GetProperty("intProperty");System.Console.Write(property.Name);这是你需要的吗?我遇到了这个,它似乎对获取属性名称很有帮助。(C++)#definegetVarName(varName,holder)sprintf(holder,"%s",#varName)intmain(){intvar=100;//任何类型的标识符charname[100];//它将获取变量名称getVarName(var,name);放(名称);返回0;}参考:http://zobayer.blogspot.com/2010/05/c-fun-get-variables-name.html上面是C#学习教程:如何获取类属性的名称?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: