In c# code, i found this implement.
I tried to find out what this in and out meaning, but only explanation of out keyword in there.
So what these in and out keyword do?
public delegate Tb Reader<in Ta, out Tb>( Ta a );
The in
parameter specifies that the type parameter is contravariant -you can pass in a class that Ta inherits from.
The out
parameter specifies that the parameter is covariant -> you can use more derived types.