Расширение примитивных типов - PullRequest
1 голос
/ 25 июля 2010

Возможно ли расширить примитивные типы, такие как System.String и System.Int32 (IE: integer) в .Net 4, и если да, то как?

Чтобы быть более конкретным, мне известна концепция частичных классов, но, похоже, это не ответ. Также я считаю, что System.String не наследуется, а Int32 является структурой.

Наконец, мне интересно узнать ответ VB.Net и C # на поставленный выше вопрос.

Спасибо всем ..

Ответы [ 2 ]

13 голосов
/ 25 июля 2010

Вы не можете расширять их напрямую - например, класс String запечатан, и, как вы отметили, обертки типов значений (такие как Int32) обычно являются структурами.

Вы можете написать методы расширения ( C # , VB.NET ) для них, вот для чего они существуют.

Другой вариант, это написать обертку вокруг них, выставив все их свойстваи добавление дополнительной функциональности.

1 голос
/ 25 июля 2010

Так же, как дополнительная информация (Одед уже прав по остальным вещам):

В .Net нет "примитивных типов". Только классы и типы значений (называемые структурами в C #) (и все они являются потомками объекта).

Однако вы не можете наследовать от типов значений (например, int, byte, ...) и не можете наследовать от закрытых классов (например, строки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...