TransientAttribute 类

定义

将 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 属性。

适用于