ジェネリックを使用するメソッドをラッピングしていますが、ジェネリックスを正しく渡す方法を理解できません。ジェネリックを使用する外部メソッドにジェネリックを渡す
LoadAsset
のように汎用タイプを受け入れる必要があるFindAsset
メソッドがあります。
public T FindAsset<T>(string assetName) {
T match;
foreach (AssetBundle bundle in assets) {
if (bundle.Contains(assetName)) {
match = bundle.LoadAsset<???>(assetName);
}
}
return match;
}
私はちょうど私がきちんとLoadAsset
へのジェネリック型を渡すことができるかどうかはわかりません。このメソッドには、Type
をパラメータとして受け取るシグネチャもありますが、このシナリオではオブジェクトを正しくキャストする方法がわかりません。
私はあなただけの、以下のようにTを渡す必要があり、私が正しく質問を理解していた場合は、このための使用量は、単にmyclass.FindAsset<Sprite>(assetName);
LoadAssetに渡すタイプでもないのですか? –
別のタイプを使用しない限り、 'T'をもう一度渡すだけですか? – Igor