Можно ли использовать метод расширения для типа вместо экземпляра типа? - PullRequest
2 голосов
/ 23 апреля 2010

У меня может быть такой метод расширения:

DateTime d = new DateTime();
d = d.GetRandomDate();

GetRandomDate - это мой метод расширения. Однако вышесказанное не имеет особого смысла. Что было бы лучше, это:

DateTime d = DateTime.GetRandomDate();

Однако я не знаю, как это сделать. Метод расширения, созданный как:

public static DateTime GetRandomDate(this System.DateTime dt)

добавит GetRandomDate () только в первом примере выше, а не во втором. Есть ли способ добиться желаемого поведения?

Ответы [ 3 ]

3 голосов
/ 23 апреля 2010

Нет - невозможно

Вам нужно получить доступ к методу в своем собственном статическом классе ...

2 голосов
/ 23 апреля 2010

Зачем вам это нужно? Если вы хотите вызвать статический метод, почему бы не вызвать его напрямую?

ОК, вам нужно будет использовать что-то вроде DateTimeHelper.GetRandomDate() вместо DateTime.GetRandomDate().

0 голосов
/ 23 апреля 2010

Просто добавьте это, но не могли бы вы создать частичный статический класс datetime и добавить в него метод расширения?

...