• c#扩展方法简单


     

    扩展方法

     

       怎样知道的。

    这还得从项目的本身说起。该项目是一套的微软底层架构上搭建起来的。

    全部的框架以及控件的封装,数据的传递方法都是总体的框架封装好的。

    对经常使用的dropwodnlist控件的数据绑定,这里就有使用的一些扩展方法的封装。怎么曾经没有见过这种方法呢。跟过去才发现是扩展方法。

     

     

    什么是扩展方法


     

        扩展方法可以向现有类型“加入”方法,而无需创建新的派生类型、又一次编译或以其它方式改动原始类型。

    扩展方法是一种特殊的静态方法,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异

     

    怎样编写扩展方法


     

       扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个參数指定该方法作用于哪个类型。而且该參数以 this 修饰符为前缀 仅当您使用 using 指令将命名空间显式导入到源码中之后,扩展方法才位于范围中。

     

    看下面样例

     

    using System;
    usingSystem.Collections.Generic;
     
    using MySpace;//注意:引入扩展方法的空间
     
    namespace Con_1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string str = "{0}先生。

    ".With("XuGang"); Console.WriteLine("您好。" + str); //2调用集合的扩展方法 str.ShowItems<char>(); } } } namespace MySpace { //扩展方法必须在非泛型静态类中定义 public static class MyMethods { //注意:第一个參数使用“this”获得当前对象 public static string With(this string_context, params string[] _args) { returnstring.Format(_context,_args); } //2为集合做扩展方法 public static voidShowItems<T>(this IEnumerable<T> _al) { foreach (var item in _al) { Console.WriteLine(item); } } } }



    从上样例中能够看出

     

    1  C# 仅仅支持扩展方法。不支持扩展属性、扩展事件等;

     

    2  方法名无限制,第一个參数必须带 this;

     

    3  扩展方法的命名空间能够使用namespace System ,但不推荐;

     

    4  定义扩展方法的类是静态类。

     

    详细准则请參考

    有关具体信息。请參阅 怎样:实现和调用自己定义扩展方法(C# 编程指南)

     

     小结: 


       这几天刚到公司,熟悉环境为主要。好些东西他们说了并非立即就能够明确的。

    所以还是须要常常问旁边的同事

    。用到的方法多是封装好的。所以看到这个认为熟悉可是细致看来。并非。扩展方法再不要的地方还是尽量少用。

    避免出现错误。毕竟用的这些方法是平台设计人员几年的功底的。

     



    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    华为移动HG8546M光猫路由器通过lan口再连接路由器
    Windows下使用Dev C++ 编写dll与使用dll(二)C++项目下的dll
    Windows下使用Dev C++ 编写dll与使用dll(一)C项目下的dll
    易语言之dll文件的编写与引入
    易语言之编写模块与引入模块
    Element ui 分页记录选中框
    MUI poppicker.js 增加搜索框
    element el-date-picker 去除自带的T格式
    element el-input小数保留两位小数,整数字符串去空格
    nginx vue三级目录配置
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4681009.html
Copyright © 2020-2023  润新知