Возможная ошибка в VB.NET "Как" оператор?

Почему это выглядит следующим образом: True?

Dim result = "b" Like "*a*b"

Спасибо.

EDIT:
Чтобы обобщить это немного, возвращается True:

"String1" Like "*AnyText1*AnyText2*AnyText???******????*String1"

VBA работает правильно, возвращая False.
PowerShell работает правильно, возвращая False:

PS C:\Users\XXX> "b" -Like "*a*b"
False

EDIT2:
Ссылка на сообщение об ошибке:
https://connect.microsoft.com/VisualStudio/feedback/details/748415/a-bug-in-net-like-operator

Ответ 1

Я решил, для удовольствия, открыть ilspy, чтобы отладить это: -)

в этом методе;

    private static void MatchAsterisk(string Source, int SourceLength, int SourceIndex, LigatureInfo[] SourceLigatureInfo, string Pattern, int PatternLength, int PatternIndex, LigatureInfo[] PattternLigatureInfo, ref bool Mismatch, ref bool PatternError, CompareInfo Comparer, CompareOptions Options)

для этого условия

                if (SourceLength <= 0)
                {
                    return;
                }

изменив его на

                if (SourceLength < 0)
                {
                    return;
                }

похоже, что он работает по назначению

Я сделал несколько небольших тестов, ничего больших

проблема; он смотрит только на звездочку LAST и, когда это было действительно, останавливался прямо там.

мое небольшое изменение обязательно проверит предыдущий или что-то на самом деле перед ним

с моим исправлением

 Dim result = "b" Like "*a*b"
 now return false

 "String1" Like "*AnyText1*AnyText2*AnyText???******????*String1"
 now return false

но возвращает true, когда ему нужно вернуть true