i confused. in why interfaces in .net reference types? said interfaces in .net reference types. first code snippet not compile. says "t must reference type..."
public isomeinterface domagic<t>(expression<func<object>> action, tuple<string, datetime, decimal> tuple) t : isomeinterface { magician m = new magician(); return m.magic<t>(()=> action, tuple.item3); }
the second compiles.
public isomeinterface domagic<t>(expression<func<object>> action, tuple<string, datetime, decimal> tuple) t : class, isomeinterface { magician m = new magician(); return m.magic<t>(()=> action, tuple.item3); }
if interfaces reference types why first code snippet not compile?
because it's real type of object encapsulated inside interface. declaring isomeinterface
, not define must condition: t has reference type.
because can have:
public interface istructinterface { } public struct : istructinterface { }
and value type.
by defining additional constrain class, declare is reference type.
Comments
Post a Comment