個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Xamarin に関する事を中心に書いています。 Microsoft MVP for Development Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

Xamarin.iOS Wrapper Types と User Types の補足

はじめに


前回の記事で、Wrapper Types と User Types について説明しましたが、言葉だけだとわかりにくいので、図を交えて補足したいと思います。


hiro128.hatenablog.jp

Wrapper Types と User Types


Wrapper types とは

Wrapper types は、UIView や UIButton のような Objective-C の組み込み型をラップしたもので、マネージドの世界では、ネイティブオブジェクトのインスタンスへのハンドルだけを持っています。

Wrapper types のインスタンス作成
var view = new UIView();


Wrapper types のイメージ

f:id:hiro128:20190207195119p:plain



User types とは


User types は、UIView や UIButton のような Wrapper types を継承し派生した型で、Objective-C に対応する型が無いものを指し、ネイティブオブジェクトのインスタンスへのハンドルの他に、マネージドな世界だけで管理されている、フィールド、プロパティやメソッドを持っています。

User Types のインスタンス作成

public class MyView : UIView
{
    string myField;

    public string MyProperty { get; set; }

    public MyView(string fieldValue)
    {
        myField = fieldValue;
    }
}

var view = new MyView("fieldValue")
{
    MyProperty = "propertyValue"
};


User Types のイメージ

f:id:hiro128:20190207195144p:plain





これで、Wrapper Types と User Types の違いがわかりやすくなりましたら幸いです。



今回は以上です。