首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#按字符串名称设置/获取类属性

C#是一种面向对象的编程语言,它被广泛应用于.NET框架中。在C#中,可以使用点号"."来访问类的属性。

如果你想要按字符串名称设置或获取类的属性,你可以使用反射技术来实现。反射技术可以让你在运行时获取一个对象的类型,并且可以动态地调用它的方法和属性。

在C#中,可以使用Type类来获取一个对象的类型,然后使用GetMethod()方法来获取一个属性的getter方法,再使用CallMethod()方法来调用这个getter方法来获取属性的值,或者使用SetMethod()方法来设置一个属性的setter方法,再使用CallMethod()方法来调用这个setter方法来设置属性的值。

以下是一个示例代码:

代码语言:csharp
复制
Type type = Type.GetType("ClassName"); // 获取对象的类型
PropertyInfo info = type.GetProperty("PropertyName"); // 获取属性的信息
object value = info.GetValue(null); // 获取属性的值
info.SetValue(null, "NewValue"); // 设置属性的值

注意,以上代码中的ClassName和PropertyName需要替换为实际对象的名称和属性名称。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 如何获取 C# 中发生数据变化的属性信息

    一、前言 在平时的开发中,当用户修改数据时,一直没有很好的办法来记录具体修改了那些信息,只能暂时采用将序列化成 json 字符串,然后全塞入到日志中的方式,此时如果我们想要知道用户具体改变了哪几个字段的值的话就很困难了...虽然这里已经达到我们的目的,但是如果采用这种方式的话,相当于原先项目中需要实现数据记录功能的属性声明方式全部需要重写,同时,基于 C# 本身已经提供了自动属性的方式来简化属性声明,结果现在我们又回到了传统属性的声明方式...因此,既然通过一个个属性进行比较的方式过于繁琐,这里我们通过反射的方式直接对比修改前后的两个实体,批量获取发生数据变更的属性信息。...我们最终想要实现的是用户可以看到关于某个表单的字段属性数据变化的过程,而我们定义在 C# 中的属性有时候需要与实际页面上显示的字段名称进行映射,以及某些属性其实没有必要记录数据变化的情况,这里我通过添加自定义特性的方式...同时,针对我们可能会排除中的某些属性,或者设定属性在页面中显示的名称,这里我们可以针对特定的类属性进行单独添加特性。

    3.5K40

    Windows下获取网络连线实际名称,加强IP设置脚本的兼容性

    其中比较难解决的问题就是获取网络连线的实际名称,大部分人使用的 IP 设置脚本都是将【本地连接】写死在代码中,可实际上并不是所有电脑都叫本地连接;比如有的用户电脑可能升级了网卡驱动,或者更换了网卡,导致网络连线的名称变成...(英文版暂未考虑) (PS:以下代码只为说明获取名称,其他一切从简展示): 一、先给出一个 XP 下简繁体通用的获取连线名称的代码 @echo off   for /f "tokens=1,2,3...---- 二、来个 XP/WIN7/简繁体通吃的连线名称获取代码(最近才帮维护人员写的,热乎着呢!)...---- 三、最后,再给个 XP 环境下加入了多网卡判断的获取连线名称的脚本吧! Ps:或许有筒子可以参考做出全兼容的脚本呢!...代码缺点: 1.还是未能解决多块网卡自动设置 IP 的情况,请有兴趣的筒子参考改进哦! 2.无法兼容 WIN7 好了,以上就是获取实际网络连线名称的所有代码了,希望能帮到有需要的朋友!

    1.6K40

    Python 单例设置获取属性的问题及解决方案

    然而,在使用单例时,可能会遇到一些问题。例如,如果在的实例上设置了一个属性,然后再次创建该类的实例,则新创建的实例将具有与第一个实例相同的属性值。这是因为单例的所有实例共享相同的属性。...2、解决方案为了解决上述问题,可以采用以下几种方法:使用的类属性来存储属性值。这样,当在的实例上设置属性值时,实际上是修改了的类属性值,而不是修改实例的属性值。...因此,所有实例都将具有相同的属性值。在单例中定义一个属性,该属性的值是的类属性。这样,当在的实例上获取属性值时,实际上是获取的类属性值。因此,所有实例都将具有相同的属性值。...在单例中定义一个属性,该属性的值是实例的实例属性。这样,当在的实例上获取属性值时,实际上是获取了实例的实例属性值。因此,不同的实例将具有不同的属性值。...()print(y.a) # 输出:0z = SingletonWithInstanceAttribute()print(z.a) # 输出:0通过以上示例,可以了解到如何解决 Python 单例设置获取属性的问题

    16310

    Python编程中属性获取设置、判断是否存在等,实战hasattr和getattr函数的应用案例!

    1. hasattr函数 hasatrr(参数1,参数2)函数来判断,如果某个参数1对象中有参数2的方法,那么就返回True,否则返回False 参数1:某个实例化的对象 参数2:某个方法名称,用字符串类型表示...同样的,这个函数也可以适用到属性获取上面。 3. setattr函数 这个函数用来设置对象的默认方法与属性。 setattr(参数1,参数2,参数3) 参数1:某个的实例化对象。...参数2:需要设置的某个的新的方法或属性名称。 参数3:对象参数2中的方法或属性名称的具体的值。 如果参数2是一个属性,那么参数3可以直接设置这个属性的值。...如果参数2是一个方法,那么参数3可以设置自定义的某个方法名称,注意这里不要写成字符串的形式,而是直接写某个方法名。 如果参数2中的方法或属性名称与对象原有的方法或属性相同,那么就以新设置的为准。...2.掌握hasattr判断某个对象是否有某个属性或者方法。 3.掌握getattr函数获取某个对象的方法或属性,并可以给予一个默认值。 4.掌握setattr函数设置某个对象的方法或属性

    46030

    【干货】Android根据生成签名字符串

    前言 昨天我们已经实现了《C#根据生成签名字符串(附DEMO下载地址)》,因为与后台做通讯时有可能是多客户端的,今天我们把Android这个实现方式也做出来 视频效果 按照惯例我们直接上干货 ?...> lstfieldname = new ArrayList(); //获取当前里的所有属性 Field[] fields = t.getClass().getFields...代码里的实现步骤: 定义生成属性名称字符串的List 获取到把传入进来的泛型的所有的属性字段数组,然后再插入到我们的List里面,注:在我们遍历字段的时候一定要判断field.isSynthetic...根据List属性名的进行ASCII的排序(Collections.Sort()) 遍历我们的List属性名称,根据属性名称再找到对应的属性值值进行字符串的拼接 把最后一位多长来的拼接符去掉 输出字符串...Sign生成签名 ? ? ---- 运行的结果 ? 点击业务Fragment后显示新的结果 ? 我们可以看出来已经字符的ASCII排序生成我们的字符串了 ---- -END-

    63220

    【Groovy】自定义 Xml 生成器 BuilderSupport ( 继承 BuilderSupport 抽象 | 在 createNode 方法中获取节点名称、节点属性、节点值信息 )

    文章目录 一、继承 BuilderSupport 抽象 二、在 createNode 方法中获取节点名称、节点属性、节点值信息 三、完整代码示例 1、MyBuilderSupport 生成器代码 2...createNode(Object name, Map attributes, Object value) { return null; } } 二、在 createNode 方法中获取节点名称...、节点属性、节点值信息 ---- 在自定义的 MyBuilderSupport 中 , 所有的创建节点的 createNode 方法都回调到 3 个参数的 createNode 方法 @Override..., 包括 节点名称、节点属性、节点值信息 ; 在该方法中打印相关节点信息 : @Override protected Object createNode(Object name, Map...name 名称 ; 使用 name("Tom", code: "UTF-8") 构建 name 节点 , 该节点的名称是 name , 属性值是 code:UTF-8 , 节点的值为 “Tom” ,

    1.9K30

    使用C#开发数据库应用程序

    )方法 3-4:C#中的String a.常用的字符串处理方法 bool Equals(string value) 比较两个字符串是否相等,最终返回true或false,与"=="的作用是相同的...int Compare(string strA,string strB) 比较两个字符串的大小关系,最终返回大于0或小于0的数 int IndexOf(string value) 获取与value字符串相匹配的索引...在C#中,为了方便代码的管理和编辑,使用partial关键字可以将同一个的代码分开放在多个文件夹中,每个文件都是的一部分代码。...(2)Form【Form是.NET Framework定义好的一个最基本的窗体,具有一些窗体最基本的属性和方法。...页 (1)创建窗体,设计窗体界面 (2)设置窗体中DataGridView的属性 (3)填充数据集,显示数据 (4)将修改后的数据提交到数据库 (5)实现性别筛选功能 8-5:ADO.NET

    5.9K30

    C# 数据操作系列 - 2. ADO.NET操作

    我们先看一下,具体的属性和方法吧: public string ConnectionString { get; set; }// 获取设置用于打开数据库的连接字符串 public string Database.../指定或者获取解释CommandText属性的方式 public System.Data.IDbConnection Connection { get; set; }//获取设置执行该命令的连接 public...将当前记录的值顺序填充到数组中,并返回实际的数目 public bool IsDBNull (int i);//返回指定字段是否设置为 null 特别补充说明 ConnectionState 是一个枚举状态...CommandType 用来指定如何解释命令字符串属性值如下: 字段 值 说明 StoredProcedure 4 存储过程的名称。 TableDirect 512 表的名称。...说明 在第四小节里提到了连接字符串,对于C#来说,不同数据库应当有不同的连接字符串。因为这是C#连接数据库的一种指令或者是密钥。 简单介绍一下连接字符串,它是用分号隔开的键值对列表。

    1.8K20

    【干货】Vue TypeScript根据生成签名字符串

    前言 前阵子我们做了C#和Android的根据生成签名,文章详见: 【干货】C#根据生成签名字符串(附DEMO下载地址) 【干货】Android根据生成签名字符串 今天我们来说一下VueJs里根据生成签名...核心代码 getsign(para: T): string { let signstr = ""; //获取泛型属性并排序ASCII码排序 let params...[ki]; console.log(name); //遍历泛性原来的泛型找到对应的属性 for (let prop in para) { //如果名称一样进行字符串拼接并跳出循环...然后我们定义一个字符串类型,和一个按钮事件,按钮事件里面getsign里面传入我们的Product,返回的字符串赋值给str里面。 test.vue.html ?...里面str字符串双向绑定,然后新建了一个按钮click事件指向btnsign ---- 演示效果 ? 未点击签名效果 ? 点击签名后的效果 ---- -END-

    70720

    【Unity3D】Android Studio 工程中使用 Java 代码调用 Unity 的 C# 脚本 ( Java 中调用 UnityPlayer#UnitySendMessage 方法 )

    , 可以调用 C# 脚本中的方法 ; 第一个参数 String var0 : 是 C# 脚本附着的游戏物体 GameObject 名称 ; 第二个参数 String var1 : 是 C# 脚本的方法名...; 第三个参数 String var2 : 是 C# 脚本方法的参数 , 如果没有参数传入空字符串 "" 即可 ; public static void UnitySendMessage(String...; Debug.Log("C# 脚本附着游戏物体的名称 : " + name); // 获取当前组件附着的 游戏物体 GameObject 的 Transform 组件...("向 kim.hsl.mylibrary.Student 对象中设置了 name 属性为 Tom"); // 调用 kim.hsl.mylibrary.Student 的 getName...= androidJavaObject.Get("name"); Debug.Log("从 kim.hsl.mylibrary.Student 对象中获取 name 属性

    1.9K20

    细说枚举

    Tip:这里我提几点建议: 枚举值的名称不应包含枚举名称; 枚举名称应以单数的形式出现(除了属性)。 2....这里虽然使用了继承语法但是并没有建立继承关系,所有的枚举基都是 System.Enum ,这些都是密封,无法从现有的枚举类型派生出新的成员。...GetName GetName 方法返回的是一个字符串,这个字符串就是需要获取的指定枚举值的字符串形式。...一般我们会使用位或操作符链接枚举值,使用 HasFlags 方法或者位与操作符来判断特定的位是否存在。...2.属性 枚举值上同样也可以使用属性,例如我们需要打印输出枚举值的中文名,我们就可以通过属性的形式进行设置,首先我们需要定义一个属性: public class EnumChineseAttribute

    1.9K10

    ☀️ 学会编程入门必备 C# 最基础知识介绍(四)——数组、字符串、结构体、枚举、

    String 属性 String 的方法 结构体(Struct)???? 定义结构体 C# 结构的特点 vs 结构 枚举(Enum)????...Array 在 System 命名空间中定义,是所有数组的基,并提供了各种用于数组的属性和方法。 ---- C# 字符串(String)????...创建 String 对象 可以使用以下方法之一来创建 string 对象: 通过给 String 变量指定一个字符串 通过使用 String 构造函数 通过使用字符串串联运算符( + ) 通过检索属性或调用一个返回字符串的方法...String 有以下两个属性: 序号 属性名称 & 描述 1 Chars 在当前 String 对象中获取 Char 对象的指定位置。...让我们使用上面的概念来设置获取一个中不同的成员的值: 实例 using System; namespace BoxApplication { class Box {

    1.7K20

    C#基础深入学习01

    数组 Array 属性 下表列出了 Array 中一些最常用的属性: 序号 属性 & 描述 1 IsFixedSize 获取一个值,该值指示数组是否带有固定大小。...4 LongLength 获取一个 64 位整数,该值表示所有维度的数组中的元素总数。 5 Rank 获取数组的秩(维度)。 如需了解 Array 的完整的属性列表,请参阅微软的 C# 文档。...Array 的方法 下表列出了 Array 中一些最常用的方法: 序号 方法 & 描述 1 Clear 根据元素的类型,设置数组中某个范围的元素为零、为 false 或者为 null。...params 的使用格式为: public 返回类型 方法名称( params 类型名称[] 数组名称 ) 结构体(Struct) 在 C# 中,结构体是值类型数据结构。...在 C# 中的结构与传统的 C 或 C++ 中的结构不同。C# 中的结构有以下特点: 结构可带有方法、字段、索引、属性、运算符方法和事件。 结构可定义构造函数,但不能定义析构函数。

    15610

    c#实战教程_ps初学者入门视频

    属性SelectionLength:获取设置RichTextBox控件中选定文本的字符数。  属性SelectionStart:获取设置RichTextBox控件中选定的文本起始点。... 属性SelectionFont:如果已选定文本,获取设置选定文本字体,如果未选定文本,获取当前输入字符采用字体或设置以后输入字符采用字体。... 属性SelectionColor:如果已选定文本,获取设置选定文本的颜色,如果未选定文本,获取当前输入字符采用的颜色或设置以后输入字符采用的颜色。... Width:获取设置此Rectangle结构的宽度。  Height:获取设置此Rectangle结构的高度。  Size:获取设置此Rectangle的大小。... X:获取设置此Rectangle结构左上角的x坐标。  Y:获取设置此Rectangle结构左上角的y坐标。

    15.6K10
    领券