setProperty method
dynamic
setProperty(
- dynamic instance,
- dynamic value
写入属性
Implementation
dynamic setProperty(dynamic instance, dynamic value) {
if (instance == this || instance == _vmclass) {
//写入静态属性
if (isExternal) {
final valueNative = VmObject.readValue(value);
if (externalStaticPropertyWriter != null) return externalStaticPropertyWriter!(valueNative);
throw ('Not found externalStaticPropertyWriter: ${_vmclass.identifier}.$identifier');
} else {
return (internalStaticPropertyOperator as VmValue).setValue(value);
}
} else {
//写入实例属性
if (isExternal) {
final instanceNative = VmObject.readValue(instance);
final valueNative = VmObject.readValue(value);
if (externalInstancePropertyWriter != null) return externalInstancePropertyWriter!(instanceNative, valueNative);
throw ('Not found externalInstancePropertyWriter: ${_vmclass.identifier}.$identifier');
} else {
return (VmObject.readLogic(instance) as VmValue).getProperty(identifier).setValue(value);
}
}
}