一、泛型

两个 问题 是典型的 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; }
    }


}

继续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力吧少年-珊珊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值