Wednesday 15 July 2015

c# - Generic class with two generic types -



c# - Generic class with two generic types -

i have generic class "selectable items" useful lists. want selectable item include list of other selectable items. here code:

public interface iselectableitem<t> { bool isselected { get; set; } bool isvisible { get; set; } string displayname { get; set; } t value { get; set; } observablecollection<iselectableitem<t>> subitems { get; } }

for subitems collection of same type selectableitem itself.

question is: how have declare interface subitems iselectableitem, of type t2, not t?

add sec generic type, t2, type definition:

public interface iselectableitem<t, t2> { t value { get; set; } observablecollection<iselectableitem<t2>> subitems { get; } }

plan b deviate between sub items , master items adding sec interface layer:

public interface iselectableitem<t, t2> : iselectableitem<t> { observablecollection<iselectableitem<t2>> subitems { get; } } public interface iselectableitem<t> { bool isselected { get; set; } bool isvisible { get; set; } string displayname { get; set; } t value { get; set; } }

this work example:

public class : iselectableitem<string> { ... } public class b : iselectableitem<string, string> { ... } b b = new b(); b.subitems.add(new a());

or even:

b.subitems.add(new b());

c# .net generics

No comments:

Post a Comment