TransientAttribute 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将 NSObject 子类中的参数标记为暂时性。
[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false)]
public sealed class TransientAttribute : Attribute
type TransientAttribute = class
inherit Attribute
- 继承
-
TransientAttribute
- 属性
注解
此属性应用于参数,并且仅在从 Objective-C 转换到 C# 时使用。 在这些转换期间,各种 Objective-C NSObjects 参数将包装到对象的托管表示形式中。
运行时将获取对本机对象的引用并保留该引用,直到该对象的最后一个托管引用消失,并且 GC 有机会运行。
在少数情况下,C# 运行时务必不要保留对本机对象的引用。 当基础本机代码将特殊行为附加到参数的生命周期时,有时会发生这种情况。 例如:参数的析构函数将执行一些清理操作,或释放一些宝贵的资源。
此属性通知运行时,在从覆盖的方法返回 Objective-C 时,如果可能,希望释放对象。
规则很简单:如果运行时必须从本机对象创建新的托管表示形式,则在函数末尾,将删除本机对象的保留计数,并清除托管对象的 Handle 属性。 这意味着,如果保留对托管对象的引用,该引用将变得毫无用 (调用方法将引发异常) 。
如果未创建传递的对象,或者已存在对象的未完成托管表示形式,则不会进行强制释放。
构造函数
TransientAttribute() |
初始化新的 Transient 属性。 |