拡張メソッド
書ける形(4)
Section titled “書ける形(4)”| 書き方 | 説明 |
|---|---|
ExtStaticHelpers.Twice(2) | 型名からの呼び出し |
public static int Twice(this int n) | 組み込みの型への追加 |
public static int Double(this ExtPoint p) | 自作の値型への追加 |
public static float Flat(this Vector3 v) | 実行環境の型への追加 |
宣言と呼び出し
Section titled “宣言と呼び出し”型名からの呼び出し
Section titled “型名からの呼び出し”using UnityEngine;using Tsukimi;
public static class ExtStaticHelpers{ public static int Twice(int n) { return n * 2; }}
public class ExtStatic : TsukimiBehaviour{ void Start() { Debug.Log(ExtStaticHelpers.Twice(2)); // => 4 }}組み込みの型への追加
Section titled “組み込みの型への追加”using UnityEngine;using Tsukimi;
public static class ExtIntHelpers{ public static int Twice(this int n) { return n * 2; }}
public class ExtPrimitive : TsukimiBehaviour{ void Start() { Debug.Log(2.Twice()); // => 4 }}自作の値型への追加
Section titled “自作の値型への追加”自分で宣言した struct にも足せます。
using UnityEngine;using Tsukimi;
public struct ExtPoint{ public int X;}
public static class ExtPointHelpers{ public static int Double(this ExtPoint p) { return p.X * 2; }}
public class ExtStruct : TsukimiBehaviour{ void Start() { ExtPoint p = new ExtPoint(); p.X = 2; Debug.Log(p.Double()); // => 4 }}実行環境の型への追加
Section titled “実行環境の型への追加”実行環境が公開している型にも足せます。型の定義を持っていなくても書けます。
using UnityEngine;using Tsukimi;
public static class ExtVectorHelpers{ public static float Flat(this Vector3 v) { return v.x + v.z; }}
public class ExtEnvironment : TsukimiBehaviour{ void Start() { Debug.Log(Vector3.one.Flat()); // => 実行環境の値 }}