код в VB.NET
Module Utils
<Runtime.CompilerServices.Extension()> _
Public Sub Print(ByVal message As String)
Console.WriteLine(message)
End Sub
End Module
Public Class Foo
Public Sub New()
Dim test = "cucu"
test.Print() ' no problem: custom string extension method '
"cucu".Print() ' syntax error '
End Sub
End Class
1) Первая проблема, я бы предпочел использовать "cucu" .MyExtensionMethod (), а также test.MyExtensionMethod ();
1' )
Синтаксис типа
"No Result".Print() ' Print is an extension method '
" No Result ".Trim() ' Trim is a framework method '
не работает оба из них
Однако синтаксис, такой как
myTextBox.Text = "No Result".Translate() ' Translate is an extension method '
myTextBox.Text = " No Result ".Trim() ' Trim is a framework method '
работает очень хорошо.
Так что, похоже, не хватает согласованности поведения константы строки.
2) Посмотрите на КОММЕНТАРИИ (на прилагаемом рисунке). Слова «пользовательский», «строка» и «ошибка» выделены, однако они есть в комментариях, поэтому должны быть зелеными, а не синими.
Почему это? Какой обходной путь?
РЕДАКТИРОВАТЬ:
Объявлено как «ошибка» в Microsoft Connect (даже если это не более чем синтаксическая «ошибка») ...
РЕДАКТИРОВАТЬ 2:
Как заметил Ганс Пассант, стандартные строковые методы, такие как "cucu".Trim()
, также не работают.