【发布时间】:2018-08-03 21:18:54
【问题描述】:
所以这是代码:
class Program
{
static void Main(string[] args)
{
Type T = Type.GetType("CSharpLearningPurposes.Program");
PropertyInfo[] properties = T.GetProperties();
foreach (PropertyInfo property in properties)
{
Console.WriteLine(property.PropertyType.Name);
}
}
}
更具体地说,问题是关于这行代码: Console.WriteLine(propert.PropertyType.Name);
您在这里看到我访问 property.PropertyType 好吧我知道我正在访问对象的成员,但我不明白这一点:property.PropertyType.Name
那究竟是在做什么?有人可以解释一下吗?
【问题讨论】:
-
它被称为reflection。谷歌首发:the docs
-
PropertyType是一个Type对象 - 它基本上是关于类型的元数据(您可以想象它对于在运行时检查对象很有用 - “反射”) - 关于其名称等的信息等。在这里,您将类型的名称写入控制台。有问题的类型对象是您在GetProperties期间枚举的任何属性的类型。例如 - 它可能是一个获取/设置string值的属性。Type对象将是System.String的描述符,并将描述来自System.String的属性、方法、声明程序集等。 -
PropertyType.Name将返回名称所暗示的内容。属性类型名称,lol。 -
查看这里了解您所掌握的内容:msdn.microsoft.com/en-us/library/system.type
-
不不不。我的问题完全不同。这与反射无关。关于这行代码: property.PropertyType.Name 这里到底发生了什么?我如何访问三个成员我无法理解这里发生了什么。
标签: c# oop properties