获取 C# 对象的属性名可能是我们在开发中需要经常使用到的操作。下面是获取 C# 对象属性名的两种常见方式:
通过字符串常量
我们可以通过字符串常量获取对应属性名。首先我们需要在对象中声明属性,然后使用字符串常量将属性名称与属性值绑定。下面是一个使用字符串常量获取属性名的示例代码:
using System;
namespace AttributeDemo
{
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
var person = new Person { Name = "张三", Age = 18 };
var propName = nameof(person.Name);
var propValue = person.GetType().GetProperty(propName)?.GetValue(person, null);
Console.WriteLine($"{propName}: {propValue}");
}
}
}
在上述代码中,我们通过 nameof
获取了 person.Name
属性的名称字符串常量,并利用该字符串常量使用 GetType()
方法获取 person
对象的类型。通过调用 GetProperty()
方法并传入属性名称,我们可以获取对应的 PropertyInfo
对象,然后调用 GetValue()
方法获取属性值,最后输出该属性的名称和值。
通过 Lambda 表达式
我们还可以使用 Lambda 表达式获取属性名。下面是一个使用 Lambda 表达式获取属性名的示例代码:
using System;
namespace AttributeDemo
{
class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
var student = new Student { Name = "李四", Age = 20 };
var propName = nameof(Student.Age);
var propValue = ((Func<Student, int>) (s => s.Age))(student);
Console.WriteLine($"{propName}: {propValue}");
}
}
}
在上述代码中,我们使用 nameof
获取了 Student.Age
属性的名称字符串常量,并将其传入了 Lambda 表达式中。Lambda 表达式接收一个 Student
对象并返回其 Age
属性的值,在获取属性值时我们直接调用该 Lambda 表达式即可,最后输出该属性的名称和值。
通过上述两种方式,我们可以轻松地获取 C# 对象的属性名。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 获取属性名的方法 - Python技术站