c#发展

首页 » 常识 » 常识 » C泛型方法可提高代码的大量复用,那泛型
TUhjnbcbe - 2025/5/22 9:41:00
C#核心开发-第17单元-泛型-第2节:泛型方法的定义和调用C#核心开发-泛型方法定义和调用1.泛型方法定义C#泛型方法可以定义在泛型类中,也可以定义在非泛型类中,含义与泛型类一样,都是将参数类型化。不过,泛型方法中的T,如果是在泛型类中,则要与泛型类的T一致。下面我们使用宇宙第一IDEVisualStudio创建一个.NET控制台应用程序,创建一个普通类Student,并在其中创建一个泛型方法:C#泛型方法Show()的定义-图1在C#非泛型类中创建泛型方法完整源码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceYidosoft.Edu.Csharp.GenericSets{publicclassStudent{publicvoidShowT(Tt){Console.WriteLine(t);}}}在此C#代码中,在方法名后面使用T类型化参数,表示这是一个泛型方法,然后又在圆括号中使用了类型T,定义了T类型的参数变量t。那么T就可以在方法内当作一种具体的数据类型来使用了,由于此类型是通过方法的参数传过来的,所以在方法内部使用时,并不知道t变量的具体类型是什么。2.泛型方法调用对于C#泛型方法的使用,也是首先要实例化所在的类,然后再调用方法,调用方法时需要传入类型,调用泛型方法如下图所示:C#泛型方法调用-图2C#泛型方法是带有符号的,需要传入指定的具体类型,如下图所示:C#泛型方法参数类型化-图3当我们在中指定具体的类型后,方法圆括号后面的T就自动变为具体的类型了。给C#泛型方法传入实参-图4另外,对于C#泛型方法的调用,还可以简化如下图所示的代码:C#泛型方法传入不同的实参-图5在Main()方法中调用泛型方法的完整代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceYidosoft.Edu.Csharp.GenericSets{classProgram{staticvoidMain(string[]args){Studentstudent=newStudent();student.Showstring(小强);student.Show(小花);student.Show();}}}当我们直接在C#泛型方法中传入具体的值后,C#编译器会自动识别出类型。当我们传入的具体实参值与泛型方法的类型相符时,就可以省略掉T,C#编译器会自动判别。对于C#的泛型方法,要注意以下几点:(1).确定类型参数,且在方法内部处理时,要符合类型,否则会出现类型错误的情况。(2).调用时,可根据定义功能要求传入具体的类型和实参值。(3).泛型方法灵活性强,但并不是所有方法都要使用泛型的,还是要根据实际情况来选择。C#深入编程-线上视频图文课堂配套课后技能作业+理论考试+源码淘宝¥购买已下架
1
查看完整版本: C泛型方法可提高代码的大量复用,那泛型