Working Generic Lists of Base Types and Inherited Types
Basically, I'm using an ORM (specifically LLBLGen) that creates entity objects for all my tables. All these entity types inherit from a base class (or really a set of them). I want to create an extension method that accepts a List of the base class and returns some string but I want to pass in inherited types without explicitly casting.
For instance, I have a function like:
string GetString(List<EntityBase2> list); // also tried List<IEntityCore>, which the base class implements
And I want to pass it something like this:
List<ProductEntity> products = ... // populate it
string v = GetString(products);
But I get compiler errors.
How can I accomplish creating this helper method. I want to avoid casting if I can but if 开发者_高级运维this is the best way then at least I could would have some confirmation on that.
try this:
string GetString<T>(List<T> list) where T : IEntityCore {...}
that way you get a generic method that takes a list of objects which implement IEntityCore. there's no need to cast and the compiler will make sure that you pass in the right objects. works starting at framework 2.0.
加载中,请稍侯......
精彩评论