Igo*_*gor 2 c# generics methods
我有这个通用的方法:
public static T FindObject<T> (this GameObject gameObject, string objectName, Type type)
{
var ret = gameObject.GetComponentsInChildren(type).Where(w => w.name == objectName).First();
return (T)Convert.ChangeType(ret, type);
}
Run Code Online (Sandbox Code Playgroud)
我这样称呼它:
var myVar = UI_POINTS.FindObject("Score", typeof(Text));
Run Code Online (Sandbox Code Playgroud)
但我给出以下错误:
无法从用法中推断出方法'ExtensionMethods.FindObject(GameObject,string,Type)'的类型参数.尝试显式指定类型参数.
为什么他不懂方法调用?
先感谢您.
编译器不知道是什么T原因,因为你没有告诉它,它无法从方法的参数推断它.你已经将一个Type对象作为参数传递给了它,但编译器应该如何知道这是指T?
事实上,我也是这样做的 - 如果这是意图,我无法从你的代码中确定.如果是,请尝试这样做:
public static T FindObject<T> (this GameObject gameObject, string objectName)
{
var type = typeof(T);
var ret = gameObject.GetComponentsInChildren(type).Where(w => w.name == objectName).First().gameObject;
return (T)Convert.ChangeType(ret, type);
}
Run Code Online (Sandbox Code Playgroud)
其次是:
var myVar = UI_POINTS.FindObject<Text>("Score");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
327 次 |
| 最近记录: |