包含此页的版本:
不含此页的版本:
属性路径是描述属性在容器对象中的位置的字符串。
您可以使用属性路径在特定路径上获取或设置对象的数据,或者接受对象子属性上的访客。
属性路径由字符串构造,并从根对象解析特定属性实例。例如,路径foo.bar.baz[12]解析bazlist 容器中的bar容器,它嵌套在foo容器。
要创建和作属性路径,请使用Unity.Properties.PropertyPath类。
您可以使用属性路径执行以下作:
Unity.Properties.PropertyPath是一个不可变 不能更改不可变(只读)包的内容。这与可变相反。大多数包都是不可变的,包括从包注册表或通过 Git URL 下载的包。
请参阅术语表struct 类型。从字符串构造属性路径时,将进行子字符串提取的分配。
下表列出了从字符串构造属性路径时的分配行为:
| 字符串 | 长度 | 分配 | 分配原因 |
|---|---|---|---|
"Path" |
1 | 0 | 按原样使用字符串。 |
"Path.To" |
2 | 2 | 将字符串分成两部分。 |
"Path.To[2]" |
3 | 3 | 将字符串分成两部分并提取索引。 |
"Path.To[2].My" |
4 | 4 | |
"Path.To[2].My.Value" |
5 | 6 | 为附加部件分配一个阵列。 |
下表列出了从部件构造属性路径时的分配行为:
| 字符串 | 长度 | 分配 | 分配原因 |
|---|---|---|---|
PropertyPath.FromName("Path") |
1 | 0 | |
PropertyPath.AppendName(previous, "To") |
2 | 0 | |
PropertyPath.AppendIndex(previous, 2) |
3 | 0 | |
PropertyPath.AppendName(previous, "My") |
4 | 0 | |
PropertyPath.AppendName(previous, "Value") |
5 | 1 | 为附加部件分配一个阵列。 |
要优化性能并避免分配内存: