博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#的Extension Method功能
阅读量:6354 次
发布时间:2019-06-22

本文共 658 字,大约阅读时间需要 2 分钟。

要在C#中使用类型的拓展方法,可在一个类中中通过指定static的方法,将Type通过this方式作为第一个参数传入,如给Random增加一个NextFloat方法

public static class Extension    {        public static byte[] NextBytes(this Random r, int length)        {            var data = new byte[length];            r.NextBytes(data);            return data;        }        public static float NextFloat(this Random r, int length)        {            return BitConverter.ToSingle(NextBytes(r, 4), 0);        }    }

如果拓展的函数和原函数重名的话,则在类以外不产生效果。如上述的NextBytes在Extension外是不生效的。

要实现该效果,有三点要求:

1. 声明该拓展方法的Class必须是static、non-generic和non-nested的

2. 拓展方法必须是static

3. 类型的传入参数必须位于第一个,且以this标明

 

转载于:https://www.cnblogs.com/wantoo/p/3939363.html

你可能感兴趣的文章
SpringMvc配置扫包之后,访问路径404问题解决
查看>>
Oracle复制表数据的两种用法
查看>>
swift 3.0 新特征
查看>>
使用POI创建word表格合并单元格兼容wps
查看>>
Vue.js 2.x笔记:组件(5)
查看>>
CentOS7 安装Nginx+MySQL
查看>>
egret中报错 “xxx 文件 is not defined”
查看>>
Spring Cloud-微服务架构集大成者
查看>>
CI调试
查看>>
Canvas中点到点的路径运动
查看>>
python CheatSheet
查看>>
asp .net 页面跳转
查看>>
java程序中路径问题
查看>>
Linux下的压缩命令
查看>>
Angular: Can't bind to 'ngModel' since it isn't a known property of 'input'问题解决
查看>>
UITableview中怎么找到每个cell
查看>>
Python手势识别
查看>>
表达式求值
查看>>
Ubuntu 安装Qt开发环境
查看>>
《赢在测试2-中国软件测试专家访谈录》读书笔记
查看>>