Rozšiřující metody

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
morousej
Člen | 18
+
0
-

Chybí mi několik věcí u extension metod:

  • Proč nejsou dostupné u kolekcí? Přece jen ta metoda __call by je mohla volat
  • Dále bych potřeboval volání extenzí na základě jména rozhraní, a ne jména třídy… (Je lepší definovat extenzi nad IMap, než HashTable)
David Grudl
Nette Core | 8134
+
0
-

morousej napsal(a):

Chybí mi několik věcí u extension metod:

  • Proč nejsou dostupné u kolekcí? Přece jen ta metoda __call by je mohla volat

Kolekce jsou jediné třídy, které se nedědí od Nette\Object, ale od ArrayObject (z praktických důvodů), tudíž nemají schopnosti Nette\Object. Samozřejmě je možné extension method implementovat i do třídy Collection, je-li po tom poptávka.

  • Dále bych potřeboval volání extenzí na základě jména rozhraní, a ne jména třídy… (Je lepší definovat extenzi nad IMap, než HashTable)

Ok, to by šlo.