2009-10-16 4 views
2

Есть ли способ создать метод расширения для типа? Кажется, я могу создать их только для экземпляров.Метод расширения по типу

public static class MyExtensions 
{ 
    public static string Test(this string s) 
    { 
     return "test"; 
    } 
} 

public class Test 
{ 
    static void TestIt() 
    { 
     string.Test(); // won't compile 

     string s = null; 
     s.Test(); 
    } 
} 
+2

Dupe http://stackoverflow.com/questions/866921/static-extension-methods –

ответ

5

Нет, это невозможно. Методы расширения могут быть созданы только для экземпляров

+0

почему голосующий ??? –

2

Нет. Методы расширения предназначены только для случаев. Другими словами, невозможно использовать статические методы расширения.

+0

Ну, технически все методы расширения статичны ... но я вижу свою точку зрения;) –

0

Правильный ответ: Нет. Методы расширения - методы для экземпляров некоторого класса.

Вы можете получить более подробную информацию от MSDN