C# 泛型方法
泛型方法是使用型別引數宣告的方法。使用泛型方法時,編譯器可以根據傳入的方法實參推斷型別形參,此時可以省略指定實際泛型引數,但編譯器不能根據返回值推斷泛型引數。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace genericMethodDemo
{
class Program
{
static void swap<T>(ref T x, ref T y)
{
T temp;
temp = x;
x = y;
y = temp;
}
static void Main(string[] args)
{
int a = 1, b = 2;
Console.WriteLine("{0},{1}",a,b);
swap<int>(ref a, ref b);
Console.WriteLine("{0},{1}", a, b);
double aa = 1.2, bb = 2.3;
Console.WriteLine("{0},{1}", aa, bb);
swap(ref aa, ref bb);
Console.WriteLine("{0},{1}", aa, bb);
Console.ReadLine();
}
}
}
如果是在泛型類中定義了泛型方法,泛型方法的泛型引數最好與泛型類的泛型引數不相同,否則會產生如下警告:"型別形參與外部型別中的型別形參同名"但該警告不影響程式的執行,如果要去掉該警告,為其中一個泛型引數提供另一個識別符號即可。using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace genericClass2
{
class genericClass<T>
{
public void Swap<T>(ref T x, ref T y)
{
T temp;
temp = x; x = y; y = temp;
}
}
class Program
{
static void Main(string[] args)
{
genericClass<int> aa = new genericClass<int>();
int a = 3, b = 4;
Console.WriteLine("{0},{1}",a,b);
aa.Swap<int>(ref a, ref b);
Console.WriteLine("{0},{1}", a, b);
Console.ReadLine();
}
}
}
相關文章
- C# 泛型C#泛型
- C#泛型C#泛型
- 【C#】-泛型C#泛型
- 泛型類和泛型方法泛型
- java泛型之泛型方法。Java泛型
- 泛型類、泛型方法及泛型應用泛型
- hashtable 泛型 C#泛型C#
- c#泛型集合C#泛型
- Java泛型知識點:泛型類、泛型介面和泛型方法Java泛型
- 淺談C#泛型C#泛型
- C#泛型約束C#泛型
- C#泛型學習C#泛型
- C# 泛型集合SortedListC#泛型
- c#泛型的使用C#泛型
- c#泛型續(一)C#泛型
- C# 透過反射(Reflection)呼叫不同名泛型方法C#反射泛型
- 詳解C#泛型(三)C#泛型
- 詳解C#泛型(二)C#泛型
- 詳解C#泛型(一)C#泛型
- c#進階之泛型C#泛型
- C#之泛型詳解C#泛型
- C#中的泛型-1C#泛型
- C#泛型類之LISTC#泛型
- C# 泛型 介面約束C#泛型
- C# 之泛型詳解C#泛型
- c#之泛型小記C#泛型
- 【譯】在非泛型類中建立泛型方法泛型
- 泛型類、泛型方法、型別萬用字元的使用泛型型別字元
- Scala 泛型型別和方法泛型型別
- 泛型轉DataTable方法泛型
- C#基礎:泛型委託C#泛型
- 理解C#泛型運作原理C#泛型
- C# 泛型 基類約束C#泛型
- C# 泛型集合的自定義型別排序C#泛型型別排序
- C#學習 [型別系統] 泛型(16)C#型別泛型
- Java中的泛型方法Java泛型
- 泛型方法的反模式泛型模式
- c#——泛型的多種應用C#泛型