C# кастинг дженери c Т - PullRequest
       3

C# кастинг дженери c Т

0 голосов
/ 18 апреля 2020

У меня есть следующий метод:

 private void SaveCatalog<T>(T data)
        {
            // Open database (or create if doesn't exist)
            using (var db = new LiteDatabase(@"database.db"))
            {
                string tableName = null;

                switch (cboCatalogs.Text.ToLower())
                {
                    case "area":
                        tableName = "setup_area";

                        break;
                    case "department":
                        tableName = "setup_department";

                        break;
                }

                // error: data is a variable but is used as a type
                var col = db.GetCollection<data>(tableName);

                // error: data is a variable but is used as a type
                var records = data as BindingList<data>;

                col.Insert(records);

            }
        }

Я что-то здесь не так делаю. T data может иметь тип Models.SetupArea или Models.SetupDepartment или это может быть что угодно в действительности.

enter image description here

Любой ключ, чтобы исправить это?

1 Ответ

2 голосов
/ 18 апреля 2020

Do:

var col = db.GetCollection<T>(tableName);
var records = data as BindingList<T>;

Вам нужно поместить тип вместо переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...