版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36792339/article/details/82896404
两个 问题 是典型的 1、普通类泛型方法 2、泛型类 泛型方法
一、普通类调用泛型函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication1;
namespace WebApplication1.Controllers
{
public class IndexController : Controller
{
// GET: Index
public ActionResult Index()
{
var cls = new Generic();//<==> Generic cls = new Generic(); //一、普通类型先实例化
var str = cls.G<string>("这美丽又丑陋的世界"); //二、你不是泛型函数, 实例化类后在给你单独 指定泛型
return View();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1
{
public class Generic
{
public T G<T>(T arg)
{
T temp = arg;
//...
return temp;
}
}
}
二、
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication1;
namespace WebApplication1.Controllers
{
public class IndexController : Controller
{
// GET: Index
public ActionResult Index()
{
// var cls = new Generic(int);//<==> Generic cls = new Generic();
//var str = cl<string>("这美丽又丑陋的世界");
var cls = new Generic<string>();
var str = cls.M("额。。。实际上你抄都抄明白的");
return View();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1
{
public class Generic<T> // 你没有在类上指定,但是你在方法上指定了啊 这个则是函数没指定 但是类指定了 所以可以引用
{
public T M(T arg)
{
T temp = arg;
//...
return temp;
}
}
}
第二个 如果 去掉泛型类的就会报错
注: 不论 普通类型泛型函数|泛型类普通函数的整体 都要出现 是定义泛型的存储
二、映射
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication1;
namespace WebApplication1.Controllers
{
public class IndexController : Controller
{
// GET: Index
public ActionResult Index()
{
// var cls = new Generic(int);//<==> Generic cls = new Generic();
//var str = cl<string>("这美丽又丑陋的世界");
var cls = new Generic<string,int>();
cls.setKey("张三");
cls.setValue(30);
//var str = cls.M("额。。。实际上你抄都抄明白的");
var name = cls.getKey();
var value = cls.getValue();
return View();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1
{
public class Generic<K, V>
{
private K key; private V value;
public K getKey() { return key; }
public void setKey(K key) { this.key = key; }
public V getValue() { return value; }
public void setValue(V value) { this.value = value; }
}
}
继续