You don’t need to pass a parameter since C# supports variable closures in anonymous functions. Just use whatever you need inside the callback and the compiler will take care of the rest.
Of course, there’s extra GC associated with closures, but I don’t think the addressables team is worried about that when it pales in comparison to a full asset load.
While I was using closure variable capture in anonymously functions for months, I am trying to simplified my code by using one method with switch cases by giving parameters passed from AssetReference.Completed action. Is this plausible?
So for your example, you could just do the OnCompleted at the end of your Coroutine. But if you want to use the callback, you would have to use a lambda(anonymous function) to do it: