C#静态拓展方法的用法
最近想拓展网上下载来的动态链接库,因为下载来的动态链接库缺少一些功能不能满足我的需求,我要想出比较好的方法去拓展这个动态链接库,查找了一下,最好的方法就是使用这个静态拓展方法了,接下来给大家展示一下如何使用这个的,代码块如下:
using System;
namespace ConsoleApp1
{class Program{static void Main(string[] args){CalPro calPro = new CalPro();Console.WriteLine("减法结果 =" + calPro.Subtract(2.8f, 1.2f));Console.WriteLine("加分结果 =" + calPro.Add(2.8f, 1.2f));Console.ReadLine();}}public class CalPro {public float Add(float a,float b){return a + b;}}static class CalProExtension {public static float Subtract(this CalPro calPro,float a, float b){return a - b;}}
}
可以看到这里把CalPro这个类拓展出了减法,而且运行以后没问题,CalPro如果打成Dll只要引用一下命名空间拓展这个Dll写法是一样的,使用静态拓展方法的注意事项就是拓展出来的方法第一个参数不能是静态类,如图下:
这个Math类是C#的集成计算数学的静态类所以拓展不了,直接报的错误也很清楚,之后可以使用这个静态拓展方法去尝试链式编程,如图下:
using System;namespace ConsoleApp1
{class Program{static void Main(string[] args){LinkPro linkPro = new LinkPro();linkPro.AddLink("第一步").AddLink("第二步").AddLink("第三步").AddLink("第四步");Console.ReadLine();}}public class LinkPro {public string AddModel(string name){return name;}}static class CalProExtension {public static LinkPro AddLink(this LinkPro linkPro,string name){Console.WriteLine(name);return linkPro;}}
}
就是调用的函数返回自身类的实例这样就可以一直调用。
C#静态拓展方法的用法相关推荐
- TIL —静态工厂方法
今天,我的工作任务使我了解了静态工厂方法,这是初始化Java类的另一种方法. 有效的Java(Addison-Wesley 2018)帮助我理解了这个概念,以下是我对该阅读的简要介绍: 穿过真实工厂的 ...
- 《Effective Java》学习笔记 - (1) 使用静态工厂方法代替构造器
文章目录 前言 使用静态工厂方法代替构造器 1. 优点 1.1 静态工厂方法有名称 1.2 不必每次调用的时候都创建一个对象 1.3 可以返回类型的任何子类型的对象 1.4 所返回的对象的类型可以随着 ...
- 直接法 matlab,解线性方程组直接方法matlab用法.doc
解线性方程组直接方法matlab用法 在这章中我们要学习线性方程组的直接法,特别是适合用数学软件在计算机上求解的方法. 2.1 方程组的逆矩阵解法及其MATLAB程序 2.1.3 线性方程组有解的判定 ...
- PHP中魔术方法的用法
PHP中魔术方法的用法 /** PHP把所有以__(两个下划线)开头的类方法当成魔术方法.所以你定义自己的类方法时,不要以 __为前缀. * */// __toString.__set.__get__ ...
- 创建对象_工厂方法(Factory Method)模式 与 静态工厂方法
工厂方法模式: 定义:为创建对象定义一个接口,让子类决定实例化哪个类.工厂方法让一个类的实例化延迟至子类. 应用场景: 客户类不关心使用哪个具体类,只关心该接口所提供的功能: 创建过程比较复杂,例如需 ...
- 第1条:考虑用静态工厂方法代替构造器
为了获得一个类的实例,有两种办法1.类提供一个公有的构造器 2.类提供一个公有的静态工厂方法. 静态工厂方法的优势: 1.有名称. 慎重地选择方法名称能突出多个构造器的区别,例如使用BigIntege ...
- 30分钟入门Java8之默认方法和静态接口方法
2019独角兽企业重金招聘Python工程师标准>>> 30分钟入门Java8之默认方法和静态接口方法 作者:@JohnTsai 本文为作者原创,转载请注明出处:http://www ...
- 设计模式之简单工厂模式(静态工厂方法)
模式定义: 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式是由一个工厂对象 ...
- android studio 如何提示方法的用法
方法/步骤1在 Eclipse中鼠标放上去就可以提示方法的用法,实际上Android Studio也可以设置的.如图 Preferences > Editor >Generan> S ...
- 【Effective Java】1.静态工厂方法来替换构造函数
优点一:不像构造函数,它有具意的名称 因为可以取具意的名称,更容易明白如何使用,可读性也更好, 优点二:每次调用无需创建新的对象 优点三:允许返回子类对象 这些子类可以不为public ,这样可以打造 ...
最新文章
- React学习笔记5:React Hooks概述
- 简述Python中的break和continue的区别
- 在linux上安装docker
- Python应用实战案例-Python使用MODIS数据实现温度植被干旱指数TVDI的计算
- 地表最简单安装MySQL及配置的方法,没有之一
- 惯量匹配和最佳传动比
- 28 PP配置-生产车间控制-工序-定义报工屏幕默认值
- UPDATE语句更新的顺序
- win10喇叭没声音,Realtek高清音频管理器 打不开问题解决
- android service开启前台通知
- linux企业实战-haproxy(2)动静分离
- 绿地控股2020年净利润下滑约7%,销售金额同比减少7.7%
- the connection to the server was unsuccessful(file ///android_asset/www/index.html)
- redis常用命令 (查询出所有的商品,并返回json给客户端)redis之路(八)
- 六大设计原则之接口隔离原则
- 【渝粤教育】电大中专电子商务网站建设与维护答案作业 题库
- Git扩展工具--GitExtension的安装和配置--2021-8-22
- scite php配置 下载,SciTE 的配置记录
- 搜狐邮箱无法被Foxmail、网易邮箱大师代收的问题的解决方法
- mac连接蓝牙耳机自动打开iTunes问题解决