BindAsAttribute 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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 |
那種被管理的類型。 |