码迷,mamicode.com
首页 > 其他好文 > 详细

c#的Extension Method功能

时间:2014-08-27 16:00:37      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   使用   io   ar   div   log   

要在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标明

 

c#的Extension Method功能

标签:style   blog   color   os   使用   io   ar   div   log   

原文地址:http://www.cnblogs.com/wantoo/p/3939363.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!