語言

BindAsAttribute 類別

定義

BindAsAttribute 允許將原生的 NSNumber、NSValue 及 NSString(用於枚舉)類型綁定為更精確的受管理型態。

[System.AttributeUsage(System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=false)]
public class BindAsAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=false)>]
type BindAsAttribute = class
    inherit Attribute
繼承
BindAsAttribute
屬性

備註

此屬性通常用於綁定專案,用以表示 Objective-C 型與受管理型別之間的特殊映射:

// NSValue <-> CGRect (for the 'rect' parameter)
// NSNumber <-> bool? (for the return value)
[return: BindAs (typeof (bool?))]
[Export ("shouldDrawAt:")]
NSNumber ShouldDraw ([BindAs (typeof (CGRect))] NSValue rect);

// NSString <-> CAScroll
[BindAs (typeof (CAScroll []))]
[Export ("supportedScrollModes")]
NSString [] SupportedScrollModes { get; set; }

在此範例中, rect 參數將被綁定為管理 CGRect值,回傳值則綁定為 bool?。

在協定與模型綁定定義中,此屬性在參數上被支援,但不支援屬性或回傳值。

支援的組合:
在 NSNumber 與 bool 之間,byte、sbyte、short、ushort、int、uint、long、ulong、nint、nuint、float、double、nfloat,或上述任何可空的類型或陣列
在 NSValue 與 NSRange 之間,CGAffineTransform、CGPoint、CGRect、CGSize、CGVector、NSDirectionalEdgeInsets、CATransform3d、CLLocationCoordinate2d、CMTime、CMTimeMapping、CMTimeRange、MKCoordinateSpan、SCNMatrix4、SCNVector3、SCNVector4、UIEdgeInsets、UIOffset,或上述任何可空型或陣列。
在 NSString 支援的 enum 與對應的受管理 enums 之間。

建構函式

名稱 Description
BindAsAttribute(Type)

初始化一個新的 BindAs 屬性,並使用指定的受管理型別。

欄位

名稱 Description
OriginalType

那種 Objective-C 型。

Type

那種被管理的類型。

適用於