我正在包装一个使用泛型的方法,但我不知道如何正确传递泛型.
我有一个FindAsset方法应该接受一般类型,就像它LoadAsset一样.
public T FindAsset<T>(string assetName) {
T match;
foreach (AssetBundle bundle in assets) {
if (bundle.Contains(assetName)) {
match = bundle.LoadAsset<???>(assetName);
}
}
return match;
}
Run Code Online (Sandbox Code Playgroud)
我只是不确定如何正确传递泛型类型LoadAsset.该方法还有一个签名,它接受一个Type参数作为参数,但在那种情况下,我看不到正确转换对象的方法.
我希望这个用法可以简单 myclass.FindAsset<Sprite>(assetName);
如果我正确理解了这个问题,你只需要传递T如下.
public T FindAsset<T>(string assetName) {
T match;
foreach (AssetBundle bundle in assets) {
if (bundle.Contains(assetName)) {
match = bundle.LoadAsset<T>(assetName);
}
}
return match;
}
Run Code Online (Sandbox Code Playgroud)