ジェネリック

確認済のバージョン: 4.1

-

難易度: 中級

ジェネリックメソッドとジェネリッククラスの作成と使い方について学びます。

ジェネリック

中級 Scripting

SomeClass

Code snippet

using UnityEngine;
using System.Collections;

public class SomeClass 
{
    //これは、ジェネリックメソッドです
    //ジェネリック型を表す T となっていることに注目してください
    //この T はランタイムに実際の型に置き換えられます
    public T GenericMethod<T>(T param)
    {
        return param;
    }
}
//JavaScript ではジェネリック型で定義することができません
//この機能を使うには、C# を使用することが必用です
import UnityEngine
import System.Collections


public class SomeClass:

    //これは、ジェネリックメソッドです
    //ジェネリック型を表す T となっていることに注目してください
    //この T はランタイムに実際の型に置き換えられます 
    public def GenericMethod [of T](param as T) as T:
        return param

SomeOtherClass

Code snippet

using UnityEngine;
using System.Collections;

public class SomeOtherClass : MonoBehaviour 
{
    void Start () 
    {
        SomeClass myClass = new SomeClass();
        
        //このメソッドを使用するには、
        //T をどの型に置き換えるかを
        //メソッドに指示する必要があります
        myClass.GenericMethod<int>(5);
    }
}
//JavaScript ではジェネリック型で定義することができません
//この機能を使うには、C# を使用することが必用です
import UnityEngine
import System.Collections


public class SomeOtherClass(MonoBehaviour):

    private def Start():
        myClass = SomeClass()
        
        //このメソッドを使用するには、
        //T をどの型に置き換えるかを
        //メソッドに指示する必要があります
        myClass.GenericMethod[of int](5)

GenericClass

Code snippet

using UnityEngine;
using System.Collections;

//これは、ジェネリックメソッドです。ジェネリック型を表す T と
//なっていることに注目してください。クラス内で型 T を使用しているインスタンス同様、
//この T はランタイムに実際の型に置き換えられます。
public class GenericClass <T>
{
    T item;
    
    public void UpdateItem(T newItem)
    {
        item = newItem;
    }
}
//JavaScript ではジェネリック型で定義することができません
//この機能を使うには、C# を使用する必用があります
import UnityEngine
import System.Collections


//これは、ジェネリックメソッドです。ジェネリック型を表す T と
//なっていることに注目してください。クラス内で型 T を使用しているインスタンス同様、
//この T はランタイムに実際の型に置き換えられます。
public class GenericClass [of T]:

    private item as T

    
    public def UpdateItem(newItem as T):
        item = newItem

GenericClassExample

Code snippet

using UnityEngine;
using System.Collections;

public class GenericClassExample : MonoBehaviour 
{
    void Start () 
    {       
        //ジェネリッククラスのオブジェクトを作成するには、
        //クラスの型を特定する必要があります
        GenericClass<int> myClass = new GenericClass<int>();
        
        myClass.UpdateItem(5);
    }
}
//JavaScript ではジェネリック型で定義することができません
//この機能を使うには、C# を使用する必用があります
import UnityEngine
import System.Collections


public class GenericClassExample(MonoBehaviour):

    private def Start():
        //ジェネリッククラスのオブジェクトを作成するには、
        //クラスの型を特定する必要があります
        myClass as GenericClass[of int] = GenericClass[of int]()
        
        myClass.UpdateItem(5)

関連するチュートリアル