zoukankan      html  css  js  c++  java
  • LINQ学习笔记(4) 扩展方法

      今天要总结的内容是C# 3.0的最新特性-扩展方法,它在LINQ查询中使用得也非常多,所以很有必要总结一下,以便于我们能更好地掌握LINQ。主要从以下几点来了解扩展方法。

    1,什么叫扩展方法?

      故名思义,扩展方法就是在类本身所声明的方法之外增加方法。当调用的时候就像作为类的实例成员来调用一样,这就是扩展方法。

    2,为什么要声明扩展方法?扩展方法有什么作用?

      在不修改类型定义的情况下,让该类型获得功能上的扩展。

    3,如何声明扩展方法?

      例如:

     1 class MyData
    2 {
    3 private double D1, D2, D3;//声明变量
    4
    5 public MyData(double d1, double d2, double d3)//构造函数。初始化类的对象。
    6 {
    7 D1 = d1;//初始化变量d1。
    8 D2 = d2;
    9 D3 = d3;
    10 }
    11
    12 public double Sum()//声明方法
    13 {
    14 return D1 + D2 + D3;
    15 }
    16 }
    17
    18 static class ExtendMyData
    19 {
    20 public static double Average(this MyData md)//关键字this,方法声明为static。
    21 {
    22 return md.Sum() / 3;
    23 }
    24 }
    25
    26 class Program
    27 {
    28 static void Main(string[] args)
    29 {
    30 MyData md = new MyData(3,4,5);//创建类的对象。
    31
    32 Console.WriteLine("Sum:{0}",md.Sum());//调用实例方法
    33 Console.WriteLine("Average:{0}",md.Average());//调用扩展方法
    34 Console.ReadKey();
    35 }
    36 }
    37 //程序输出结果为:Sum:12
    38 // Average:4

    4,声明扩展方法注意事项?

      1> 扩展方法和扩展方法所在的类都必须声明为static。

      2> 扩展方法必须包含关键字作为它的第一个参数类型,并在后面跟着它所扩展的类的名称。

      以上就是今天总结的扩展方法的部分,今天晚上时间还比较充足,接下来要总结的是查询语法和方法语法。

  • 相关阅读:
    15 Action View 以及监听 的使用
    15 ActionProvider代码例子
    15 ActionBar 总结
    15 Actionbar的显示和隐藏
    14 fragment传值
    14 fragment 创建
    14 Fragment 注意点
    14 Fragment 碎片总结
    GSON TypeToken 解决泛型问题
    Intent传递对象——Serializable和Parcelable区别
  • 原文地址:https://www.cnblogs.com/mcgrady/p/2308003.html
Copyright © 2011-2022 走看看