当前位置:网站首页>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
边栏推荐
- Jimureport building block report v1 Version 4.2 release, free visual low code report
- JVM - automatic memory management - 2 - garbage collector and memory allocation strategy
- Spotmax update: scalable statistics, instance preheating, intelligent storage, providing multiple cost reduction guarantees
- 黑五 圣诞节
- 【TiChoo资讯站】
- 行业分享 | TiChoo数据CEO 陆诗冬展望全球视频电商未来蓝图
- TiChoo数据分析选品 { 资讯站 }
- 【TiChoo资讯站】TikTok及跨境电商周报
- 行业分享 | TiChoo数据即将出席2022年海外短视频行业峰会
- tiktok 数据分析平台
猜你喜欢
随机推荐
- nuget的几个地址
- 使用Text.json解析Json文件
- 常用的SQL语句
- 使用多线程写winform程序
- Modbus协议编写与测试
- 使用多线程,Invoke和Action 访问SQL数据库
- Access数据库练习
- 泛型类, 泛型接口的继承, 委托
- 泛型类,泛型接口
- is 和 as的用法
- 多线程的深入理解
- 异步调用,多线程
- 跨域请求无法携带Cookie的问题
- Jenkins 入门
- Jenkins 分布式架构
- Jenkins 配置中文显示(汉化)
- Jenkins 通过API 执行 grovvy 脚本
- Jenkins API接入指南
- Jenkins 通过API获取从节点的secret
- 浅析npm run serve命令
- I think code is a work of art. She's beautiful
- Push failed Dst refspec V1.0.0 matches more than one.
- 微服务系列--深入理解RPC底层原理与设计实践
- Try the map and slice of the model version in go 1.18
- [highcharts] 04_ wrap
- (highly recommended) mobile audio and video from zero to start
- 微服務系列--深入理解RPC底層原理與設計實踐
- Push failed Dst refspec V1.0.0 matches more than one.
- Série de microservices - compréhension approfondie des principes sous - jacents et des pratiques de conception du CPR
- Push failed DST refspec v1. 0,0 matches more than one.
- Analyse de la commande NPM Run Service
- Jenkins obtient le secret du noeud via l'API
- Jenkins API Access Guide
- Quickly write a vs code plug-in
- Yyds dry goods inventory trunk (I)
- Modify a value to make Scrollview and listview elastic and APK volume optimized
- Jenkins exécute le script grovvy via l'API
- Jenkins configure l'affichage chinois (chinois)
- Jenkins Distributed Architecture
- Introduction à Jenkins