首先新建一个C#控制台项目,命名为fanXingClassAndMethod。

一:泛型类的语法格式

1.新建一个名为Person的类,修改为泛型类,我在注释里写的很多,直接看代码吧:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace fanXingClassAndMethod
{
//里面的T 可以用任何字母来代替,大小写都可以,但一般使用大写字母
//T代表一个不确定的类型
//这个类中有几个类型不确定,就在<>内写几个“类型占位符”,即可写成Person<T,K>,Person<T,K,L>等。
class Person
{
public string name;
public int age;
public T info;

    public void Show()
    {
        Console.WriteLine(string.Format("{0}---{1}---{2}",name,age,info));
    }
}

}

2,在Program的类中实例化一个Person,并且调用它的Show:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace fanXingClassAndMethod
{
class Program
{
static void Main(string[] args)
{
Person p1 = new Person();
p1.name = “武大人”;
p1.age = 18;
p1.info = “郑州大学”;

        p1.Show();
        Console.ReadKey();
    }
}

}

3,运行项目:

[

](http://www.wjgbaby.com/wp-content/uploads/2017/08/17081201-300x139.jpg)
](http://www.wjgbaby.com/wp-content/uploads/2017/08/17081201-300x139.jpg)

二:泛型方法的语法格式

在定义方法的时候,方法名的后面使用来定义。 1.如果当前的方法所在的类中,已经定义了这个类型,方法名的后面就不需要再次定义; 例如: public T Attempt() { }

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace fanXingClassAndMethod
{
class Person
{
public string name;
public int age;
public T info;

    public void Show()
    {
        Console.WriteLine(string.Format("{0}---{1}---{2}",name,age,info));
    }

    //已经定义了T这个类型
    public T Attempt()
    {
        return info;
    }
}

}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace fanXingClassAndMethod
{
class Program
{
static void Main(string[] args)
{
Person p1 = new Person();
p1.name = “武大人”;
p1.age = 18;
p1.info = “郑州大学”;

        p1.Show();
        Console.WriteLine(p1.Attempt());
        Console.ReadKey();
    }
}

}

结果如下:[

](http://www.wjgbaby.com/wp-content/uploads/2017/08/17081202-300x218.png)
2.如果当前的方法所在的类中,没有定义这个类型,方法名的后面就需要再次定义;
{ }

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace fanXingClassAndMethod
{
class Program
{
static void Main(string[] args)
{
Person p1 = new Person();
p1.name = “武大人”;
p1.age = 18;
p1.info = “郑州大学”;

        p1.Show();
        //Console.WriteLine(p1.Attempt());
        Console.WriteLine(Attempt<string>("我爱郑大"));
        Console.ReadKey();      
    }

    public static K Attempt<K>(K text)
    {
        return text;
    }

}   

}

结果如下:[

](http://www.wjgbaby.com/wp-content/uploads/2017/08/17081203-300x135.jpg)
](http://www.wjgbaby.com/wp-content/uploads/2017/08/17081203-300x135.jpg)