C# - Как передать класс в метод

212
13 июня 2018, 03:40

Нужно создать метод, входным параметром которого будет класс

public void TablesJoin<T>(List<T> coll,object MyClass, string sql, string splitOn)
{
    using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["DBmodel"].ConnectionString))
    {
        db.Open();
        var lookup = db.Query<T, MyClass, T>(sql, (_par_one, _par_two) =>
        {
            _par_one.MyClass = _par_two;
            return _par_one;
        },
        splitOn: splitOn).AsQueryable();
        var result = lookup.ToList();
        coll = result;
    }
}

ошибка в object MyClass и последующем упоминании данного класса

Плюс вопрос: корректен ли код, в ситуации с универсальным List ??
P.S. by using Dapper

Answer 1

Добавьте еще один генерик параметр (это и есть параметр-тип)

public List<T> TablesJoin<T, MyClass>(string sql, string splitOn)
{
    using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["DBmodel"].ConnectionString))
    {
        db.Open();
        var lookup = db.Query<T, MyClass, T>(sql, (_par_one, _par_two) =>
        {
            // не уверен, что должен делать этот код, но скорее всего вам                
            // придется добавить ограничение на T - 
            // т.к. ожидается наличие свойства MyClass
            _par_one.MyClass = _par_two; 
            return _par_one;
        },
        splitOn: splitOn).AsQueryable();
        return  lookup.ToList();
        // coll = result; <-- это меняет локальную ссылку на список
        // а не возвращает список наружу.
        // используйте return, чтобы вернуть объект
    }
}

и вызывайте с указанием конкретного класса.

READ ALSO
посчитать количество checkbox на панели

посчитать количество checkbox на панели

int count = (panel_admin_vivodControls as CheckBox)

207
Как сделать двигающийся бар для выбора возраста в unity

Как сделать двигающийся бар для выбора возраста в unity

У нас спрашивается возраст и есть два пути

192
Определить что аудио прошло два круга

Определить что аудио прошло два круга

Стоит задача, сменить музыку после того как аудиофайл завершится два раза, те

175
Надо сделать программу на С#. Помогите пожалуйста [закрыт]

Надо сделать программу на С#. Помогите пожалуйста [закрыт]

Разработать программу ввода названий областей, их площади (квкм) и количества населения (тыс

193