C#笔记整理(重载、集合、委托)

重载

函数重载允许创建多个同名函数,每个函数可使用不同的参数类型,或者参数的个数不同。

static void Main(string[] args)
{
    Printf();
    Printf(1);
    Printf("1");
}
static void Printf()
{
    Console.WriteLine();
}
static void Printf(int i)
{
    Console.WriteLine(i);
}
static void Printf(string i)
{
    Console.WriteLine(i);
}

而Console.WriteLine();拥有19种情况

委托

委托是一种存储函数引用的类型

delegate void Printf(string i);
static void Main(string[] args)
{
    Printf a=new Printf(Print);
    a("100");
    Console.ReadLine();
}
static void Print(string i)
{
    Console.WriteLine(i);
}
//记得当初学到这里时,感觉委托有个卵子用...

集合

类似与数组,但不是数组。可以用集合维护对象组

  • IEnumerable 可以迭代集合中的项
  • ICollection(继承于IEnumerable)可以获取集合中项的个数,并能把项复制到一个简单的数组类型中。
  • IList(继承于IEnumerable和ICollection)提供了集合的项列表,允许访问这些项,并提供一些其他一些与项列表相关的基本功能
  • IDictionary(继承于IEnumerable和ICollection)类似于IList,但提供了可通过键值(而不是索引)访问的项列表
static void Main(string[] args)
{
    ArrayList classA = new ArrayList();
    classA.Add(new A(1));
    classA.Add(new A(2));
    classA.Add(new A(3));
    foreach (A a in classA)
    {
        a.Printf();
    }
}
public class A
{
    public int a;
    public A(int a)
    {
        this.a = a;
    }
    public void Printf()
    {
        Console.WriteLine(this.a);
    } 
}

ArrayList集合是System.Object对象的集合(通过多态性赋给A对象),所以必须进行数据类型转换

((A)classA[0]).Printf();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值