C# 泛型
2022/6/16 1:20:15
本文主要是介绍C# 泛型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
参考:C#中的泛型_morn to的博客-CSDN博客_c# 泛型
一、泛型
定义:泛型允许我们延迟编写类或方法中的参数类型,直到在程序中使用它的时候,模块内高内聚,模块间低耦合。
二、可空类型
对于引用类型的变量来说,如果未对其赋值,在默认情况下是 Null 值,对于值类型的变量,如果未赋值,整型变量的默认值为 0。
C# 语言中提供了一种泛型类型 (即可空类型 (System.Nullable<T>))来解决值类型的变量在未赋值的情况下允许为 Null的情况。
static void Main(string[] args) { int? i = null; double? d = 3.14; if(i.HasValue) { Console.WriteLine("i的值为{0}", i); } if(d.HasValue) { Console.WriteLine("d的值为{0}", d); } Console.ReadLine(); }
三、泛型方法
static void TestMethod<T>(T a,T b) { Console.WriteLine("参数1的类型是{0},参数2的类型是{1}", a.GetType(), b.GetType()); }
四、带约束的泛型类
class Program { static void Main(string[] args) { TestClass<Student> testClass = new TestClass<Student>(); testClass.Add(new Student() { Age = 21, Name = "YXZ" }); testClass.Add(new Student() { Age = 25, Name = "YMW" }); testClass.Show(); Console.ReadLine(); } static void TestMethod<T>(T a,T b) { Console.WriteLine("参数1的类型是{0},参数2的类型是{1}", a.GetType(), b.GetType()); } } class TestClass<T> where T : Student { List<T> ts = new List<T>(); public void Add(T t) { ts.Add(t); } public void Show() { foreach(var n in ts) { Console.WriteLine("{0},{1}", n.Age,n.Name); } } } class Student { public int Age { get; set; } public string Name { get; set; } }
这篇关于C# 泛型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#