iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >C#中泛型方法怎么用
  • 821
分享到

C#中泛型方法怎么用

2023-06-17 23:06:31 821人浏览 独家记忆
摘要

这篇文章主要为大家展示了“C#中泛型方法怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中泛型方法怎么用”这篇文章吧。C# 泛型方法在相同的类型推断规则也适用于静态方法以及实例方法。编译

这篇文章主要为大家展示了“C#中泛型方法怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中泛型方法怎么用”这篇文章吧。

C# 泛型方法在相同的类型推断规则也适用于静态方法以及实例方法。编译器能够根据传入的方法参数推断类型参数;它无法仅从约束或返回值推断类型参数。因此,类型推断不适用于没有参数的方法。类型推断在编译时、编译器尝试解析任何重载方法签名之前进行。编译器向共享相同名称的所有泛型方法应用类型推断逻辑。在重载解析步骤中,编译器仅包括类型推断取得成功的那些泛型方法。

在泛型类中,非泛型方法可以访问类级别类型参数,如下所示:

C# 泛型方法代码

class SampleClass<T>  {      void Swap(ref T lhs, ref T rhs) { }  }

如果定义的泛型方法接受与包含类相同的类型参数,编译器将生成警告 CS0693,因为在方法范围内,为内部 T 提供的参数将隐藏为外部 T 提供的参数。除了类初始化时提供的类型参数之外,如果需要灵活调用具有类型参数的泛型类方法,请考虑为方法的类型参数提供其他标识符,如下面示例中的 GenericList2<T> 所示。

C# 泛型方法代码

class GenericList<T>  {      // CS0693      void SampleMethod<T>() { }  }   class GenericList2<T>  {      //No warning      void SampleMethod<U>() { }  }

使用约束对方法中的类型参数启用更专门的操作。此版本的 Swap<T> 现在称为 SwapifGreater<T>,它只能与实现 IComparable<T> 的类型参数一起使用。

C# 泛型方法代码

void SwapIfGreater<T>(ref T lhs, ref T rhs) where T : System.IComparable<T>  {      T temp;      if (lhs.CompareTo(rhs) > 0)      {          temp = lhs;          lhs = rhs;          rhs = temp;      }  }

泛型方法可以使用许多类型参数进行重载。例如,下列方法可以全部存在于同一个类中:

C# 泛型方法代码

void DoWork() { }  void DoWork<T>() { }  void DoWork<T, U>() { }

泛型方法是使用类型参数声明的方法,如下所示:

C# 泛型方法代码

static void Swap<T>(ref T lhs, ref T rhs)  {      T temp;      temp = lhs;      lhs = rhs;      rhs = temp;  }

下面的代码示例演示一种使用 int 作为类型参数的方法调用方式:

C# 泛型方法代码

public static void TestSwap()  {      int a = 1;      int b = 2;       Swap<int>(ref a, ref b);      System.Console.WriteLine(a + " " + b);  }

也可以省略类型参数,编译器将推断出该参数。下面对 Swap 的调用等效于前面的调用:

C# 泛型方法代码

Swap(ref a, ref b);

以上是“C#中泛型方法怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: C#中泛型方法怎么用

本文链接: https://www.lsjlt.com/news/294303.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#中泛型方法怎么用
    这篇文章主要为大家展示了“C#中泛型方法怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中泛型方法怎么用”这篇文章吧。C# 泛型方法在相同的类型推断规则也适用于静态方法以及实例方法。编译...
    99+
    2023-06-17
  • C#中的泛型怎么用
    这篇文章将为大家详细讲解有关C#中的泛型怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、简介泛型现在在任何一种语言中都被认为是一个高级的强有力的术语。当我在C++中***次接触模板时,我对之有些疑...
    99+
    2023-06-17
  • C#中怎么定义和使用泛型类和方法
    在C#中,泛型类和方法可以让你编写更加灵活和可复用的代码。以下是如何定义和使用泛型类和方法的示例: 定义泛型类: public cl...
    99+
    2024-03-06
    C#
  • C#泛型方法中反射常用方法有哪些
    这篇文章主要讲解了“C#泛型方法中反射常用方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#泛型方法中反射常用方法有哪些”吧!C# 泛型方法中反射常用方法使用的:因为公共语言运行库...
    99+
    2023-06-17
  • c#泛型怎么使用
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-14
  • Java Scala泛型方法怎么使用
    本文小编为大家详细介绍“Java Scala泛型方法怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java Scala泛型方法怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1...
    99+
    2023-07-05
  • C#中泛型类和扩展方法如何使用
    我们经常通过泛型构造函数创建泛型实例,也常调用实例的扩展方法。以下的代码在项目中随处可见: static void Main(string[] args) ...
    99+
    2022-11-13
    C# 泛型类 扩展方法
  • C#中泛型集合的使用方法有哪些
    今天小编给大家分享一下C#中泛型集合的使用方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。SortedList<...
    99+
    2023-07-04
  • C#程序中怎么使用泛型集合代替非泛型集合
    C#程序中怎么使用泛型集合代替非泛型集合,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。软件开发过程中,不可避免会用到集合,C#中的集合表现为数...
    99+
    2024-04-02
  • java泛型方法怎么定义
    在Java中,可以使用以下语法来定义泛型方法: public <T> void methodName(T paramet...
    99+
    2024-03-13
    java
  • C#泛型数组怎么使用
    本篇内容介绍了“C#泛型数组怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C# 泛型和数组在 C# 2.0 中,下限为零的一维数组自...
    99+
    2023-06-17
  • Go泛型应用工厂方法及泛型使用
    目录前言接口实现泛化编程工厂+泛型来实现更通用的泛化编程泛型使用的最佳时机关于功能设计的简单建议最后前言 由于网上关于泛型使用的文章太多了,这里就不聊怎么使用泛型了,今天我们结合工厂...
    99+
    2024-04-02
  • javascript泛型方法
    Javascript是一门动态语言,它的灵活性与扩展性相当高,使得它可以很容易地实现很多语言难以做到的功能。例如,在一些语言中,要实现泛型方法(Generic Method),需要使用模板或者泛型语法来实现。但在Javascript中,我们...
    99+
    2023-05-14
  • C#中各种泛型集合的使用方法总结
    本篇体验除Queue<T>和Stack<T>之外的其它泛型集合。 SortedList<TKey, TValue> SortedList<T...
    99+
    2022-11-13
    C# 泛型集合
  • C#中怎么实现泛型处理
    C#中怎么实现泛型处理,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C#泛型处理的问题陈述考虑一种普通的、提供传统 Push() 和 Pop() 方法的数据结构(例如,堆栈)。...
    99+
    2023-06-17
  • C#泛型有什么用
    这篇文章将为大家详细讲解有关C#泛型有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。泛型:即通过参数化类型来实现在同一份代码上操作多种数据类型。泛型编程是一种编程范式,它利用“参数化类型”将类型抽象...
    99+
    2023-06-17
  • 在 TypeScript 中使用泛型的方法
    目录1. 泛型语法2. 在函数中使用泛型(1)分配泛型参数(2)直接传递类型参数(3)默认类型参数(4)类型参数约束3. 在接口、类和类型中使用泛型(1)接口和类中的泛型(2)自定义...
    99+
    2024-04-02
  • TypeScript中泛型怎么用
    这篇文章将为大家详细讲解有关TypeScript中泛型怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。泛型避免代码重复中,创建可重用的类型,是我们编写简洁代码重要的一...
    99+
    2024-04-02
  • java泛型方法怎么定义和使用
    Java泛型方法可以在方法声明时使用泛型类型参数,以便在方法内部使用不特定的类型。定义和使用Java泛型方法的步骤如下: 在方法...
    99+
    2023-10-27
    java
  • C#泛型代码块怎么使用
    这篇文章主要讲解了“C#泛型代码块怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#泛型代码块怎么使用”吧!C# 泛型是一种类型占位符,或称之为类型参数。我们知道在一个方法中,一个变...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作