Ответ 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