2010-01-05 20 views

Odpowiedz

15

Nie można mieć metody rozszerzenie na temat klas statycznych ponieważ rozszerzenie metod mają zastosowanie jedynie do chwilowych rodzaje i klasy statyczne nie można instancja.

zobacz kod ..

public static bool IsEmail(this string email) 
    { 
     if (email != null) 
     { 
      return Regex.IsMatch(email, "EmailPattern"); 
     } 

     return false; 
    } 

Pierwszy parametr ISEMAIL() jest rozszerzenie przykład rodzaju, a nie tylko sama typu. Nigdy nie możesz mieć instancji typu statycznego.

10

Nie można przedłużyć klas statycznych w C#. Metody rozszerzeń działają poprzez zdefiniowanie metod statycznych, które pojawiają się jako metody instancji w pewnym typie. Nie można zdefiniować metody rozszerzenia, która rozszerza klasę statyczną.

0

Być może zechcesz zmienić swoją klasę statyczną w singleton. Wtedy będzie tylko jedna instancja klasy. Możesz użyć na nim metod rozszerzeń, ponieważ jest to instancja.

To jest pod warunkiem, że masz dostęp do kodu źródłowego klasy.

+1

Czy możemy się spodziewać wyjaśnienia tego (nienawidzę singleton)? –

+8

Cóż, nie spodziewałbyś się tylko jednego przykładu "Nienawidzę singletonu", prawda? –

+0

Jak ktokolwiek może usunąć mój nienawidzę singleton Nienawidzę singleton komentarz? –

Powiązane problemy