如何理解下面的代码?通用函数原型(prototype)中的“this”是什么意思?谢谢!
public static class MyExtensions
{
public static MyStream<T> MySingle<T>(this T source)
{
return new MyStream<T>(source);
}
}
最佳答案
this
在此上下文中表示它是一种扩展方法,因此您可以以“正常”方式使用它:
MyExtensions.MySingle(someSource)
或者这种(有时更好的)方式:
someSource.MySingle()
只有当方法是 static
并且在 static
类中时才有可能。此外,它与方法的泛型方面无关 - 您可以创建没有泛型方面的扩展方法,并且您仍然在参数前面有 this
。
扩展方法,顾名思义,用于在您无权访问源代码或希望在广泛的类集上使用它时使用方法扩展现有的类。重要的是要注意,您无法访问私有(private)和 protected 方法等,例如当您从类派生时,当您在类型上创建扩展方法时。
另外,为了深入解释:
关于C#泛型函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3570088/