Методы расширения VB.NET

Возможно, ваше присвоение fam_symbol создает указатель на строковую переменную fam_symbol.Name, которая исчезает после отката транзакции, вместо того, чтобы копировать ее значение. Прочитайте объяснение о присвоении другой переменной строке, сделайте копию или увеличьте счетчик ссылок : Python никогда не делает копию, если не указано иное, например, использовать. copy или deepcopy.

7
задан Saif Khan 2 December 2008 в 03:54
поделиться

4 ответа

На какую версию платформы .NET IDE указывает?

Кроме того, на первый взгляд синтаксис дополнительного метода выглядит неправильным.

Код является неполным. Поместите операторы использования в пример для любого, чтобы использовать код и скомпилировать его - для репродуцирования ошибки.

8
ответ дан 6 December 2019 в 21:21
поделиться

Необходимо только получать эту ошибку, если одно из следующего верно

  1. Вы не используете VS 2008 - Дополнительная поддержка Метода была добавлена в VS2008
  2. Ваш код не имеет ссылки на System.Core.dll - Также добавленной в VS2008

Можно ли проверить оба из них? Мое подозрение - то, что Вы пытаетесь использовать VS2005 для создания дополнительного метода. Если это верно, это, к сожалению, не поддерживается.

4
ответ дан 6 December 2019 в 21:21
поделиться

Используйте это...

Система. Время выполнения. CompilerServices. ExtensionAttribute

Ничто не мог найти вызываемым внутренним абонентом в пространстве имен, которое Вы упомянули.

0
ответ дан 6 December 2019 в 21:21
поделиться

Я добавил бы пространство имен к импорту, таким образом, Вы не должны вводить его каждый раз:

Imports System.Runtime.CompilerServices

<Extension()> _
Public Sub Test(ByVal Value As String)

End Sub

После того как у Вас есть он в Вашем импорте, можно просто добавить Расширение верхней части каждого метода вместо всего этого.

Поскольку shahkalpesh сказал, что Вы дополнительный метод является неполным, необходимо будет добавить тип, который Вы хотите расширить (см. код первый parm). Я просто имел игру и нашел, что, если Вы не предоставляете тип для расширения в качестве параметра компилятора, бросит ошибку.

0
ответ дан 6 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: