I didn't attend PDC 2008, but I heard some news that C# 4.0 is announced to support Generic covariance and contra-variance. That is, List<string> can be assigned to List<object>. How could that be?
In Jon Skeet's book C# in Depth, it is explained why C# generics doesn't support covariance and contra-variance. It is mainly for writing se...
            
           
          
            
            Generic Variance in C# 4.0 has been implemented in such a way that it's possible to write the following without an exception (which is what would happen in C# 3.0):
 List<int> intList = new List<int>();
 List<object> objectList = intList; 
[Example non-functional: See Jon Skeet's answer]
I recently attended a conference where Jon Ske...
            
           
          
            
            The problem:
class StatesChain : IState, IHasStateList {
    private TasksChain tasks = new TasksChain();
     ...
    public IList<IState> States {
        get { return _taskChain.Tasks; }
    }
    IList<ITask> IHasTasksCollection.Tasks {
        get { return _taskChain.Tasks; } <-- ERROR! You can't do this in C#!
                 ...
            
           
          
            
            Hi Guys
I was doing some digging around into delegate variance after reading the following  question in SO : http://stackoverflow.com/questions/2714989/delegate-createdelegate-and-generics-error-binding-to-target-method
I found a very nice bit of code from Barry kelly at 
https://www.blogger.com/comment.g?blogID=8184237816669520763&...
            
           
          
            
            I have a generic class that all my DAO classes derive from, which is defined below. I also have a base class for all my entities, but that is not generic.
The method GetIdOrSave is going to be a different type than how I defined SabaAbstractDAO, as I am trying to get the primary key to fulfill the foreign key relationships, so this func...