C# & Unity 面向对象补全计划 泛型

 本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正

1.什么是泛型

泛型(Generics)是C#中的一个强大特性,允许你编写可以适用于多种数据类型的可重用代码,而不需要重复编写类或方法,泛型提供了类型参数化的能力,使得我们可以在编写代码时延迟确定具体的数据类型

说白了,泛型就是就是偷懒用的,或者说是对数据类型不定的情况下,占位用的

2.泛型广泛用于各种地方

只需要学会两个符号即可

<T>: < > 代表泛型符号,T代表占位符

T: 占位符,表示未定数据类型

下面举例说明:

2.1泛型函数

这是一个参数为泛型的泛型函数

MyFunction<int>(114514);
//泛型函数
 static void MyFunction<T>(T t )
    { 
    Console.WriteLine( t );
}

使用时别忘了在<>中填写数据类型,这样给出的数据类型就会交给T,而函数的参数就会变为int类型,图解: 

2.2泛型类

比较常见的使用方式就是泛型类的<T>和字段变量一直,不然需要合理的强制转换

当然构造函数传入的一定是和创建类时,和<T>一样的类型

Computer<string> computer = new Computer<string>("泛型数据的任意性");
Console.WriteLine(computer.Value);

public class Computer<T> {
    private  T value;
    public T Value { get { return value; } }
    public Computer(T value)
        {
        this.value = value; 
    }
}

2.3泛型接口

我的目标是给出一个泛型接口,通过子类去实现其中的属性和方法

通过子类的方法将属性的set封装一次,并将属性get出来

泛型接口

public interface Computer<T> {
    
    protected T Value {
        get;
    }
    protected T MyFunction(T value) { 
        return value; }
}

继承泛型接口

public class NoteBook : Computer<string> {

    public string Value{get;private set; }

    public string MyFunction(string s)
        { 
        Value = s;  
         return Value;    
    }
}

实现:

NoteBook noteBook = new NoteBook();
noteBook.MyFunction("泛型接口");
Console.WriteLine(noteBook.Value);

总览:

NoteBook noteBook = new NoteBook();
noteBook.MyFunction("泛型接口");
Console.WriteLine(noteBook.Value);

public interface Computer<T> {
    
    protected T Value {
        get;
    }
    protected T MyFunction(T value) { 
        return value; }
}

public class NoteBook : Computer<string> {

    public string Value{get;private set; }

    public string MyFunction(string s)
        { 
        Value = s;  
         return Value;    
    }
}

图解:

2.4泛型委托

我就以上面的MyFunction方法举例,用Func委托(一个c#提供好的,有可以参,必须有返回值的委托函数)来订阅该方法:C# 委托-CSDN博客

 public Func<string,string> func;
  public NoteBook(string s)
      {
      func += MyFunction;
      func.Invoke(s);
  }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值