Net C# 扩展方法

Net C# 扩展方法

扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。

好处:
不修改原有类型的实现

调用:
调用以成员函数方式调用,静态实现

范例:
using System.Linq;
using System.Text;
using System;

namespace CustomExtensions
{
    //Extension methods must be defined in a static class
    public static class StringExtension
    {
        // This is the extension method.
        // The first parameter takes the "this" modifier
        // and specifies the type for which the method is defined.
        public static int WordCount(this String str)
        {
            return str.Split(new char[] {' ', '.','?'}, StringSplitOptions.RemoveEmptyEntries).Length;
        }
    }
}
namespace Extension_Methods_Simple
{
    //Import the extension method namespace.
    using CustomExtensions;
    class Program
    {
        static void Main(string[] args)
        {
            string s = "The quick brown fox jumped over the lazy dog.";
            //  Call the method as if it were an
            //  instance method on the type. Note that the first
            //  parameter is not specified by the calling code.
            int i = s.WordCount();
            System.Console.WriteLine("Word count of s is {0}", i);
        }
    }
}

上述代码实现的字统计

你也可以采用继承的方式来实现

public class StringExtension : String
{
    public int WordCount()
    {
    ......
    }


调用上,这是两个不同的类别处理。


=======================================================

看到这里,如果学习Objective-C,就知道Category这个东西,就是用于扩展方法。

看来C#这个语言,从多类语言中吸取各自的优点,混装了自己~

至于Objective-C的Category,这里不做介绍和比对

=======================================================




转载于:https://www.cnblogs.com/GoGoagg/archive/2011/08/04/2127697.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

豆瓣 音乐和读书的搜索页的 window.__DATA__ 的解密

豆瓣读书搜索页的 window.__DATA__ 的解密:https://www.jianshu.com/p/ac8b81950a73 豆瓣的 音乐搜索 和 读书搜索,返回的网页源码都有 window.__DATA__ ,这是 js 加密 之后的数据 具体分析 参考 :https://www.jianshu.com/p/ac8…

每日一题——LeetCode888

方法一 个人方法: 交换后要达到相同的数量,那么意味着这个相同的数量就是两个人总数的平均值,假设A总共有4个,B总共有8个,那么最后两个人都要达到6个,如果A的第一盒糖果只有1个,那么B就要给出6…

“真”5G标准出炉!不止是速度,这些难以置信的改变将彻底颠覆你的生活

来源:传球创新论坛摘要:5G时代又离我们近了一大步。6月14上午11时许,3GPP批准了第五代移动通信标准5G NR独立组网(SA)的冻结,这意味着首个完整意义的国际5G标准正式确立。未来,5G技术将成为和电…

写在囧男囧女们的七夕节

写在囧男囧女们的七夕节 当我们发现某些节日已经远离我们时,我们往往会以幽默的方式,让自己无厘头地般地分享节日的快乐 。比如,每年的六月一日,不管童年已经离我们多遥远,见朋友或同事就来上一句“节日快乐”&#xf…

安卓逆向_16 --- ARM 静态分析( 使用 IDA Pro 分析 ARM 汇编【java_ 和 JNI_OnLoad】 )

菜鸟总结 so 分析,arm 汇编,IDA 静态分析:https://www.52pojie.cn/thread-695063-1-1.html JNI 静态注册 so 和 IDA 导入的 JNI.h 文件.zip:https://download.csdn.net/download/freeking101/12571373 ARM 静态分析: …

人脑的前世今生

来源:科学网摘要:人类的神奇常常归结于一个智慧的大脑以及贯穿于其中的无比复杂的神经网络,并认为这源自上帝之手,但其实它并不是无中生有的,而是自然演化的产物,虽然是一个无与伦比的杰作,但人…

Web在线操作Office之Word

最近公司有个项目,需要直接在IE浏览器中操作Word文档,随后在网上搜了一些资料,感觉都不是很理想。不过,最后还是找到了一个 功能比较强的控件,是老外开发的控件,需要注册。还好,没有注册时&…

安卓逆向_17 --- IDA 动态调试【 环境搭建、so库调试【动态普通、动态debug模式】、JNI_OnLoad调试分析、java_ 开头函数分析】

哔哩哔哩视频:https://www.bilibili.com/video/BV1UE411A7rW?p54 IDA Pro调试so,附加完毕,跳到目标so基址,但是内容都是DCB伪指令?:https://bbs.pediy.com/thread-222646.htm Android 中 adb shell ps 查…

2018全球科技创新报告

来源:199IT互联网数据中心摘要:毕马威报告显示,我们如今正处在一个科技创新爆发的时代,对于科技企业来说,现在不是害怕失败或是裹足不前的时候。毕马威报告显示,我们如今正处在一个科技创新爆发的时代&…

安卓逆向_18 --- APK保护策略【Java代码混淆、资源混淆、签名校验】

Java 代码混淆介绍:https://www.bilibili.com/video/BV1UE411A7rW?p60 Android 反编译利器 jadx:GitHub上直接下载:https://github.com/skylot/jadx Jeb 软件是一款专业实用且为安全专业人士设计的 Android 应用程序的反编绎工具&#xff0…

VC++ CFileDialog文件选择对话框的构造和文件操作

CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,然后判断选择的是确定按钮IDOK ,还是取消按钮IDCANCEL 。构造函数原型如下:CFileDialog::CFileDialog( BOOL bOpenFileDialog,LPCTSTR lpszDefExt NULL,LPCTS…

谷歌的「未来城市」

来源:爱范儿摘要:自 2015 年以来,谷歌一直在进行一个神秘的项目。自 2015 年以来,谷歌一直在进行一个神秘的项目。它就是由谷歌主导的「高科技未来城市项目」。那这个高科技未来城市是个什么样的城市,让玩物君来告诉你…

解题报告 keke 的房子

1. 题目 Keke的房子 Description keke得到了一块n*m的土地,他灰常高兴,于是他想要盖个房子,keke的房子必须是正方形的。 但是,并不是土地的每个地方都能盖房子。地面上有一些地方不能盖一砖一瓦。 他当然希望将房子盖得大一…

安卓逆向_19( 一 ) --- APK保护策略【APP打开就崩溃 之 霸哥apk过签名校验】

From:霸哥磁力搜索apk 过签名校验:https://www.cnblogs.com/LuLuLuHao/p/12863978.html 霸哥磁力搜索app回编签名:https://www.ssfiction.com/archives/2293 https://www.cnblogs.com/LuLuLuHao 哔哩哔哩( IDA 分析 so &…

OpenAI NLP最新进展:通过无监督学习提升语言理解

编译 | reason_W编辑 | 明 明出品 | AI科技大本营摘要:近日,OpenAI 在其官方博客发文介绍了他们最新的自然语言处理(NLP)系统。这个系统是可扩展的、与任务无关的,并且在一系列不同的 NLP 任务中都取得了亮眼的成绩。但…

安卓逆向_19( 二 ) --- APK保护策略【重新签名后安装打开失败 --- 书旗小说.apk、浦发银行.apk的过签名校验【so 文件修改保存】】

From( 书旗小说过签名校验 【 使用 DDMS 分析方法调用流程 】 ):https://www.cnblogs.com/LuLuLuHao/p/12874468.html 签名校验一般步骤: 1. 先查有没有加壳,如果有壳,先脱壳2. 如果没加壳,则 …

GPU、FPGA芯片成为增强机器学习能力的“左膀右臂”

选自:forbes 编译:网易智能 参与:nariiy在商业软件中,电脑芯片已被遗忘。对于商业应用程序来说,这是一种商品。由于机器人技术与个人硬件设备联系更为紧密,因而制造应用程序仍然更侧重于硬件部分。自20世纪…

C++ 第三方常用网络库

From:https://www.cnblogs.com/aitantianderuangutou/p/11416902.html (1) ACE 庞大、复杂,适合大型项目。开源、免费,不依赖第三方库,支持跨平台。 http://www.cs.wustl.edu/~schmidt/ACE.html (2) Asio Asio基于Boost开发的异…

HDU1878-欧拉回路(入门题+并查集)

题意: 判断一个图是否是欧拉回路。 欧拉回路: 图 G 的一个回路,若它通过 G 中每条边一次且仅一次,则称为欧拉回路。 其中有著名的哥尼斯堡七桥问题或一笔画问题。(原来小时候我们就接触欧拉回路了,欧拉回路还是蛮常见,…

增强现实技术的9个最新应用趋势

来源:资本实验室摘要:随着AR技术的成熟,AR与行业的融合越来越深入。从设计到营销,从教育到医疗,从出行到文化,AR正在重新定义各产业的思维方式和运行方式。1.教育AR应用程序正在以更具互动性的方式改变教学…