abboudi_ammar Ответов: 1

Использование общего списка


Здравствуйте, как централизовать эту часть кода с помощью общего списка.

DG.DataSource = null;
           var source = new BindingSource();
           source.DataSource = Lcls.lc;
           DG.DataSource = source;


это мой исходный код, который я вставляю, и моя проблема локализована в файле MyData. cs
Файл mydata.в CS
class MyData:clslistes<Object>
    {
 
        public void RemplirDataGridList(DataGridView DG,clslistes<Object> Lcls)
        {
            DG.DataSource = null;
            var source = new BindingSource();
            source.DataSource = Lcls.lc;
            DG.DataSource = source;
        }
    }

clslistes.в CS

abstract class clslistes<t>
    {
       public static List<t> lc = new List<t>();
       public clslistes()
       {
 
       }

clsClient. cs
class clsClient:clslistes<clsClient>
    {
        private int _NumCl;
 
        public int Numero
        {
            get { return _NumCl; }
            set { _NumCl = value; }
        }
        private string _NomCl;
 
        public string GETSETNomCl
        {
            get { return _NomCl; }
            set { _NomCl = value; }
        }
        private string _telCl;
 
        public string GETSETTelCl
        {
            get { return _telCl; }
            set { _telCl = value; }
        }
        private string _adressCl;
 
        public string GETSETadressCl
        {
            get { return _adressCl; }
            set { _adressCl = value; }
        }
        private string _EmailCl;
 
        public string GETSETEmailCl
        {
            get { return _EmailCl; }
            set { _EmailCl = value; }
        }
        private string _VilleCl;
 
        public string GETSETvilleCl
        {
            get { return _VilleCl; }
            set { _VilleCl = value; }
        }
        private string _paysCl;
 
        public string GETSETpaysCl
        {
            get { return _paysCl; }
            set { _paysCl = value; }
        }
        public clsClient()
        {}
 
        public clsClient(int NumCl, string NomCl, string telCl, string adressCl, string EmailCl, string VilleCl, string paysCl)
        {
 
            this._NumCl = NumCl;
            this._NomCl = NomCl;
            this._adressCl = adressCl;
            this._telCl = telCl;
            this._EmailCl = EmailCl;
            this._VilleCl = VilleCl;
            this._paysCl = paysCl;
 
        }
 
        public bool rechercheClient(int num)
        {
            foreach (clsClient cl in lc)
            {
                if (cl.Numero == num)
                    return true;
 
            }
            return false;
 
        }
 
        public bool ajoutclient(clsClient cl)
        {
            if (this.rechercheClient(cl.Numero) == false)
            {
                lc.Add(cl);
                return true;
            }
 
            return false;
        }
 
        private int rechercheclientposit(int num)
        {
            clsClient cl = new clsClient();
            for (int i = 0; i < lc.Count; i++)
            {
                cl = (clsClient)lc[i];
                if (cl.Numero == num)
                {
                    return i;
 
                }
            }
            return -1;
 
        }
 
 
 
        public bool modifierclient(int numcl,clsClient Ncli)
        {
            if (this.rechercheclientposit(numcl) == -1)
                return false;
            else
            {
                lc[rechercheclientposit(numcl)] = Ncli;
                return true;
 
            }
 
 
        }
 
        public bool supprimerClient(int num)
        {
            if (this.rechercheclientposit(num) == -1)
                return false;
            else
            {
                lc.RemoveAt(rechercheclientposit(num));
                return true;
 
            }
 
        }
    }

зная, что ошибка локализована именно в этой строке файла MyData. cs

source.DataSource = Lcls.lc


Что я уже пробовал:

я пытаюсь изменить входные параметры
clslistes<Object> Lcls
с
clslistes<T> Lcls
но это показывает ошибку

public void RemplirDataGridList(DataGridView DG,clslistes<Object> Lcls)
        {
            DG.DataSource = null;
            var source = new BindingSource();
            source.DataSource = Lcls.lc;
            DG.DataSource = source;
        }

[no name]

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

johannesnestler

просто комментарий: Я бы настоятельно рекомендовал вам переосмыслить свои соглашения об именах - может быть, на что-то большее .Нет-иш? У меня рак глаз, когда я читаю ваш код ;)

Rahul VB

:) ха-ха-ха, я согласен

1 Ответов

Рейтинг:
1

johannesnestler

Так какая же ошибка? - то, что ты здесь делаешь, не имеет для меня никакого смысла... - универсальный тип, который представляет собой список (трудно понять по вашему названию), содержащий универсальный список того же типа - это то, что вы хотели?

Но в любом случае я предполагаю, что ваша проблема заключается только в объявлении RemplirDataGridList - это должно быть то же самое (t)- давай, действительно читай .Соглашения об именовании сетей! - как вы заявили, Вы clslistes например так оно и есть:

public void RemplirDataGridList<t>(DataGridView DG,clslistes<t> Lcls)


соглашения об именах для сети.
https://msdn.microsoft.com/en-us/library/ms229045(v=против 110). aspx
(Я не шучу: программирование-это изобретение и запоминание имен - из всего моего многолетнего опыта это самое важное, что я бы сказал, чтобы быть успешным в программировании...)


Rahul VB

Приятно, и спасибо, что поделились :
https://msdn.microsoft.com/en-us/library/ms229045(v=против 110). aspx