this
w tym kontekście oznacza, że jest to metoda rozszerzenie tak można użyć to "normalny" sposób:
MyExtensions.MySingle(someSource)
czy to (czasem ładniejszy) sposób:
someSource.MySingle()
Jest to możliwe tylko wtedy, gdy metoda jest static
i jest w klasie static
. Nie ma to również nic wspólnego z ogólnym aspektem metody - możesz tworzyć metody rozszerzania bez aspektów ogólnych, a przed parametrem nadal masz this
.
Metody rozszerzania, jak sugeruje nazwa, są używane do rozszerzenia istniejących klas metodami, jeśli nie masz dostępu do źródła lub jeśli chcesz, aby był używany w szerokim zestawie klas. Ważne jest, aby pamiętać, że nie masz dostępu do prywatnych i chronionych metod itp., Np. Kiedy czerpiesz z klasy, kiedy tworzysz metodę rozszerzenia na typie.
Również dla wyjaśnienia dogłębnej:
Extension Methods (C# Programming Guide)
Dobra uwaga na temat tego słowa kluczowego "this" niezwiązanego z rodzajami. – Oded