Изменение типа возвращаемого значения метода базового класса - PullRequest
1 голос
/ 17 сентября 2011

У меня есть класс с именем ProgramE, который является подклассом DataAccess.Как бы я мог сделать универсальный метод, который возвращает тип вызывающего класса?

Это код в классе DataAccess.

    public MongoCursor<DataAccess> GetAll(QueryComplete query)
    {
        MongoServer server = MongoServer.Create(C.connectionString);
        MongoDatabase db = server.GetDatabase(C.database);
        MongoCollection<DataAccess> collection = db.GetCollection<DataAccess>(_collectionName);
        var result = collection.FindAs<DataAccess>(query);

        return result;
    }

Вот то, что я пытаюсьделать.Я получаю эту ошибку."Не удалось неявно преобразовать тип 'System.Collections.Generic.List' в 'System.Collections.Generic.List'"

        ProgramE p = new ProgramE();
        QueryComplete query = Query.EQ("InstalledOn.SystemID", audit.SystemID);

        List<ProgramE> ServerPrograms = p.GetAll(query).ToList();

1 Ответ

1 голос
/ 17 сентября 2011

Будет ли что-то подобное работать для вас?

public MongoCursor<T> GetAll<T>(QueryComplete query) where T : DataAccess {
    MongoServer server = MongoServer.Create(C.connectionString);
    MongoDatabase db = server.GetDatabase(C.database);
    MongoCollection<T> collection = db.GetCollection<T>(_collectionName);
    return collection.FindAs<T>(query);
}

List<ProgramE> ServerPrograms = p.GetAll<ProgramE>(query).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...