是否可以添加构造函数扩展方法?
示例用例
我想添加一个 List< T > 构造函数以从给定的部分填充的缓冲区中接收特定数量的字节(没有仅复制相关字节等的开销):
...
public static List<T>(this List<T> l, T[] a, int n)
{
for (int i = 0; i < n; i++)
l.Add(a[i]);
}
...
所以用法是:
List<byte> some_list = new List<byte>(my_byte_array,number_of_bytes);
我已经添加了一个 AddRange 扩展方法:
public static void AddRange<T>(this List<T> l, T[] a, int n)
{
for (int i = 0; i < n; i++)
l.Add(a[i]);
}
我也想作为构造函数来做。可能吗?如果是 - 如何?
最佳答案
不,但是如果您更改了 AddRange
签名以返回列表实例,那么您至少可以这样做
var list = new List<int>().AddRange(array, n);
哪个恕我直言可能比重载构造函数更清楚。
关于c# - 是否可以创建构造函数扩展方法?如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4782034/