将泛型传递给也使用泛型的外部方法

hel*_*on3 0 c# generics

我正在包装一个使用泛型的方法,但我不知道如何正确传递泛型.

我有一个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);

Sha*_*Ray 6

如果我正确理解了这个问题,你只需要传递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)