![]() |
1
1492
当然,您需要添加验证和其他内容,但这就是其中的要点。 |
![]() |
2
188
像这样的怎么样:
这将允许您使用单个字符串下降到属性中,如下所示:
您可以将这些方法用作静态方法或扩展。 |
![]() |
3
52
添加到任何
然后,您可以将其用作:
|
![]() |
4
41
用这个怎么样
然后
|
![]() |
5
26
杰丁斯的回答很好。我希望改进它,允许引用聚合数组或对象集合,以便propertyname可以是property1.property2[x].property3:
|
![]() |
6
11
如果我使用的代码来自 Ed S. 我得到
似乎
现在我找到了一个可行的解决方案:
|
![]() |
7
8
关于嵌套属性讨论,如果使用
当然,您需要在
|
![]() |
8
6
.NET标准中要调用的方法已更改(从1.6开始)。我们还可以使用C 6的空条件运算符。
|
![]() |
9
4
使用的属性信息 系统反射 命名空间。无论我们尝试访问什么属性,反射编译都很好。运行时出错。
它可以很好地获取对象的位置属性
我们会得到位置:x=71,y=27 我们也可以用同样的方法返回location.x或location.y。 |
![]() |
10
4
这是一种在列表中获取所有属性及其值的方法。 |
![]() |
11
2
这是另一种查找嵌套属性的方法,不需要字符串来告诉您嵌套路径。对于单属性方法,请归功于Ed S.。
|
![]() |
12
2
你从来没有提到你要检查的对象,而且由于你拒绝了引用一个给定对象的对象,我假设你是指一个静态对象。
注意,我用局部变量标记了正在检查的对象
|
![]() |
13
2
下面的代码是一个递归方法,用于显示对象实例中包含的所有属性名和值的整个层次结构。此方法使用了Alexd的简化版本
例如,我使用此方法显示
|
![]() |
14
2
|
![]() |
15
2
|
![]() |
16
1
|
![]() |
17
1
更短的路……
|
![]() |
18
1
jheddings 和 AlexD 他们都写了关于如何解析属性字符串的很好的答案。我想把我的混合,因为我写了一个专门的图书馆正是为了这个目的。
Pather.CSharp
的主要类是
例如,如果有这样的对象
想要得到
这是最基本的路径示例。如果你想看看它还能做什么,或者你能怎么延伸它,就去看看它。 Github page . |
![]() |
19
0
这是我的解决方案。它还与COM对象一起工作,并允许从COM对象访问集合/数组项。
|
![]() |
20
0
看看 Heleonix.Reflection 图书馆。您可以通过路径获取/设置/调用成员,或者创建一个比反射更快的getter/setter(编译为委托的lambda)。例如:
或者创建一次getter并缓存以供重用(这更具性能,但如果中间成员为空,则可能引发NullReferenceException):
或者如果你想创建一个
|
![]() |
21
0
以下方法非常适合我:
要获取属性值:
要设置属性值:
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |