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

60
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)

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

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

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

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

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

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

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

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

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

43