一、泛型

版权声明:本文为博主原创文章,未经博主允许不得转载。 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; }
    }


}

继续

猜你喜欢

转载自blog.csdn.net/weixin_36792339/article/details/82896404
今日推荐