创建一个泛型类Value,一个方法getValue。创建一个int类型的Value对象,一个string类型的Value对象。使用getValue方法,他们分别返回int和string类型的值。
创建一个普通类Value2,一个泛型方法getValue。创建一个int类型的Value对象,使用getValue方法,他们分别返回int类型的值。
创建一个泛型类Value3,一个泛型方法getValue3。创建一个int类型的Value对象。使用string类型的getValue3方法,返回string类型的值。
//Unity-泛型类和泛型方法
//创建一个泛型类Value,一个方法getValue。创建一个int类型的Value对象,一个string类型的Value对象。使用getValue方法,他们分别返回int和string类型的值。
//创建一个普通类Value2,一个泛型方法getValue。创建一个int类型的Value对象,使用getValue方法,他们分别返回int类型的值。
//创建一个泛型类Value3,一个泛型方法getValue3。创建一个int类型的Value对象。使用string类型的getValue3方法,返回string类型的值。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Demo : MonoBehaviour
{
void Start()
{
Value<int> fan = new Value<int>();
Value<string> fan1 = new Value<string>();
int myValue = fan.getValue(100);
string myValue1 = fan1.getValue("200");
Debug.Log("myValue = " + myValue);
Debug.Log("myValue1 = " + myValue1);
Value2 value2 = new Value2();
int myValue2 = value2.getValue<int>(300);
Debug.Log("myValue2 = " + myValue2);
Value3<int> fan3 = new Value3<int>();
string myValue3_1 = fan3.getValue2<string>("abc");
string myValue3_2 = fan3.getValue3<string>("abc");
Debug.Log("myValue3_1 = " + myValue3_1);
Debug.Log("myValue3_2 = " + myValue3_2);
}
}
//泛型类
public class Value<T> : MonoBehaviour
{
public T getValue(T value)
{
return value;
}
}
public class Value2 : MonoBehaviour
{
//泛型方法
public T getValue<T>(T value)
{
return value;
}
}
//泛型类和泛型方法
public class Value3<T> : MonoBehaviour
{
public T getValue(T value)
{
return value;
}
//不标准,此时方法的泛型类型getValue2<T>和类的Value3<T>可以不一样的,这里写getValue3<A>更合适,可以表示代表不同的含义
public T getValue2<T>(T value)
{
return value;
}
//标准写法
public A getValue3<A>(A value)
{
return value;
}
}