41 lines
1.1 KiB
Markdown
41 lines
1.1 KiB
Markdown
|
|
# IScriptRuntime::TryGetClassFieldDefaultValues
|
||
|
|
|
||
|
|
**命名空间**: `XCEngine::Scripting`
|
||
|
|
|
||
|
|
**类型**: `method`
|
||
|
|
|
||
|
|
**头文件**: `XCEngine/Scripting/IScriptRuntime.h`
|
||
|
|
|
||
|
|
## 签名
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
virtual bool TryGetClassFieldDefaultValues(
|
||
|
|
const std::string& assemblyName,
|
||
|
|
const std::string& namespaceName,
|
||
|
|
const std::string& className,
|
||
|
|
std::vector<ScriptFieldDefaultValue>& outFields) const = 0;
|
||
|
|
```
|
||
|
|
|
||
|
|
## 作用
|
||
|
|
|
||
|
|
查询某个脚本类在初始状态下的字段默认值。
|
||
|
|
|
||
|
|
## 设计意义
|
||
|
|
|
||
|
|
这个接口不是简单返回“每种类型的零值”。当前 `ScriptEngine` 用它来:
|
||
|
|
|
||
|
|
- 构建 `ScriptFieldModel` 的 `defaultValue`
|
||
|
|
- 在 `ClearScriptFieldOverrides()` 时把活体托管字段重置回类默认值
|
||
|
|
|
||
|
|
因此更合理的实现应该尽量反映托管类构造后的真实字段状态。
|
||
|
|
|
||
|
|
## 返回值语义
|
||
|
|
|
||
|
|
- 返回 `true`:后端确认类存在,并成功返回默认值列表。
|
||
|
|
- 返回 `false`:类不存在、后端未初始化,或后端不支持默认值提取。
|
||
|
|
|
||
|
|
## 相关文档
|
||
|
|
|
||
|
|
- [TryGetClassFieldMetadata](TryGetClassFieldMetadata.md)
|
||
|
|
- [ScriptEngine::TryGetScriptFieldModel](../ScriptEngine/TryGetScriptFieldModel.md)
|