[C#]扩展CLR的原生类

C# 3.0以后,允许开发人员对CLR里的原生类进行扩展,也就是说,您可以自由为CLR的各种类增加新的方法。

下面便是一个扩展CLR里的ObservableCollection类的例子,对其加上AddRange方法。

public static class Extensions
{
    public static void AddRange<T>(this ObservableCollection<T> oCollection, IEnumerable<T> collection)
    {
        if (collection == null)
        {
            throw new ArgumentNullException("ObservableCollection is NULL");
        }
        foreach (T item in collection)
        {
            oCollection.Add(item);
        }
    }
}

把这个保存成Extensions.cs放到Utility的namespace下,(blchen的习惯是把所有的公用类都放到Project.Utility的命名空间下。)之后,在项目里用到ObservableCollection的时候就可以用到AddRange方法了


Comments

151 responses to “[C#]扩展CLR的原生类”

Leave a Reply