C#中泛型方法与泛型接口

时间:2022-11-08 10:13:22


http://blog.csdn.net/aladdinty/article/details/3486532


  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace 泛型
  6. {
  7.     class 泛型接口
  8.     {
  9.         public static void Main()
  10.         {
  11.             PersonManager man = new PersonManager();
  12.             Person per = new Person();
  13.             man.PrintYourName(per);
  14.             Person p1 = new Person();
  15.             p1.Name = "p1";
  16.             Person p2 = new Person();
  17.             p2.Name = "p2";
  18.             man.SwapPerson<Person>(ref p1, ref p2);
  19.             Console.WriteLine( "P1 is {0} , P2 is {1}" , p1.Name ,p2.Name);
  20.             Console.ReadLine();
  21.         }
  22.     }
  23.     //泛型接口
  24.     interface IPerson<T>
  25.     {
  26.         void PrintYourName( T t);
  27.     }
  28.     class Person
  29.     {
  30.         public string Name = "aladdin";
  31.     }
  32.     class PersonManager : IPerson<Person>
  33.     {
  34.         #region IPerson<Person> 成员
  35.         public void PrintYourName( Person t )
  36.         {
  37.             Console.WriteLine( "My Name Is {0}!" , t.Name );
  38.         }
  39.         #endregion
  40.         //交换两个人,哈哈。。这世道。。
  41.         //泛型方法T类型作用于参数和方法体内
  42.         public void SwapPerson<T>( ref  T p1 , ref T p2)
  43.         {
  44.             T temp = default(T) ;
  45.             temp = p1;
  46.             p1 = p2;
  47.             p2 = temp;
  48.         }
  49.     }
  50. }