当前位置:网站首页>Classe générique, héritage de l'interface générique, délégué

Classe générique, héritage de l'interface générique, délégué

2022-01-15 02:08:17 La lave de Rodinia

Définir une classe mère en utilisant des génériques

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Practice
{
    
    public class Power<T1,T2,T3>
    {
    
        public Power(T1 age, T2 gender, T3 name) //Lors de la redéfinition du constructeur, Peut être utiliséthisPointez vers le constructeur le plus complet,Les paramètres manquants sont remplacés par des valeurs par défaut.Ne peut être utilisé que pour le type spécifiéintQuelque chose comme ça.,Je ne peux pasT1 T2
        {
    
            this.Age = age;
            this.Gender = gender;
            this.Name = name;
        }
        private T1 _age;
        private T2 _gender;
        private T3 _name;
        
        public T1 Age {
     get => _age; set => _age = value; }
        public T2 Gender {
     get => _gender; set => _gender = value; }
        public T3 Name {
     get => _name; set => _name = value; }

        void Poweron()
        {
    
            Console.WriteLine(" Le courant est allumé. ");
        }
        void Poweroff()
        {
    
            Console.WriteLine(" L'alimentation est éteinte ");
        }
    }
}

Définir une interface

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Practice
{
    
    interface Iprinter
    {
    
        void Fax();
        void Print();
        void Copy();
    }
}

Construire des objets en utilisant à la fois l'héritage et l'interface

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Practice
{
    
    public class HP<T1,T2,T3,T4> : Power<T1,T2,T3>,Iprinter
    {
    
        public HP(T1 age, T2 gender, T3 name, T4 id) : base(age, gender, name)
        {
    
            this.Id = id;
        }
        //private int _id;

        public T4 Id {
     get; set; }

        public void Ink()
        {
    
            Console.WriteLine(" L'imprimante HP manque d'encre ");
        }
        public void Copy()
        {
    
            Console.WriteLine(" Copie à l'aide d'une imprimante HP ");
        }

        public void Fax()
        {
    
            Console.WriteLine(" FAX utilisant l'imprimante HP ");
        }

        public void Print()
        {
    
            Console.WriteLine(" Impression à l'aide d'une imprimante HP ");
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Practice
{
    
    public class Connon<T1, T2, T3,T4> : Power<T1,T2,T3>, Iprinter
    {
    
        public Connon(T1 age, T2 gender, T3 name,T4 id) : base(age, gender, name)
        {
    
            this.Id = id;
        }
        private T4 _id;

        public T4 Id {
     get => _id; set => _id = value; }
        public void Ink()
        {
    
            Console.WriteLine(" L'imprimante canon manque d'encre ");
        }
        public void Copy()
        {
    
            Console.WriteLine(" Copie à l'aide d'une imprimante canon ");
        }

        public void Fax()
        {
    
            Console.WriteLine(" Utilisation d'une imprimante canon pour télécopier ");
        }

        public void Print()
        {
    
            Console.WriteLine(" Impression à l'aide d'une imprimante canon ");
        }
    }
}

Mettre en œuvre des classes génériques

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Practice
{
    
    class Program
    {
    
        static void Main(string[] args)
        {
    
            int age = 0;
            char gender = 'Hommes';
            string name = "printer";
            int id = 1;
            List<Iprinter> list = new List<Iprinter>()
            {
    
                new HP<int,char,string,int>(age,gender,name,id ), //Iprinter Hp
                new Connon<int,char,string,int>(age, gender, name, id) //Iprinter Con
            };

            foreach (var item in list)
            {
    
                item.Fax();
            }
            Console.ReadKey();
         
        }
    } 

Délégation générique, EtFuncEtActionGénéralités

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Practice
{
    
    class Program
    {
    
        static void Main(string[] args)
        {
    
            //1, Délégation générique
            DelePrinter<int> printt = (int a, int b) => {
     return a + b; };
            Console.WriteLine(printt(3, 10));
            Console.ReadKey();

            //FuncMandat Avec valeur de retour
            Func<int, int, double> func = (a, b) => {
     return a + b; };
            Console.WriteLine(func(3, 10));
            Console.ReadKey();

            //ActionMandat, Aucune valeur de retour
            Action<int, double> action = (a, b) => {
     Console.WriteLine("Le premier numéro est{0},Le deuxième numéro est{1}", a, b); };
            action(3, 10);
            Console.ReadKey();
        }
    } 

    public delegate T DelePrinter<T>(T name, T age);//1, Délégation générique
}

版权声明
本文为[La lave de Rodinia]所创,转载请带上原文链接,感谢
https://chowdera.com/2022/01/202201080558307482.html

随机推荐