Как передать List <DerivedClass>, когда типом параметра является List <BaseClass>?

Как я могу передать список, который является списком DerivedObjects, где Метод ожидает список BaseObjects. Я конвертирую список.ToList<BaseClass>() и мне интересно, есть ли лучший способ. Моя вторая проблема - неправильный синтаксис. Я пытаюсь передать список byref, и я получаю сообщение об ошибке:'ref' argument is not classified as a variable

Как я могу исправить эти две проблемы? Благодарю.

public class BaseClass { }
public class DerivedClass : BaseClass { }

class Program
{
    static void Mai,n(string[] args)
    {
        List<DerivedClass> myDerivedList = new List<DerivedClass>();
        PassList(ref myDerivedList.ToList<BaseClass>());
// SYNTAX ERROR ABOVE IS - 'ref' argument is not classified as a variable

        Console.WriteLine(myDerivedList.Count);
    }

    public static void PassList(ref List<BaseClass> myList)
    {
        myList.Add(new DerivedClass());
        Console.WriteLine(myList.Count);
    }
}

Решено:

Метод, подобный этому, решил мою проблему.

public static void PassList<T>(ref List<T> myList) where T : BaseClass
{
    if (myList == null) myList = new List<T>(); 
    // sorry, i know i left this out of the above example.

    var x = Activator.CreateInstance(typeof(T), new object[] {}) as T;
    myList.Add(x);
    Console.WriteLine(myList.Count);
}

Спасибо всем, кто помогает через этот вопрос и из других вопросов SO.

Ответы на вопрос(3)

Ваш ответ на вопрос