Существует ли GUID.TryParse () в.NET 3.5?

Если это не делает / , не был бы работать на ЦП, это - сценарий мне. Если интерпретатор должен работать на ЦП ниже программы, то это - сценарий и язык сценариев.

Никакая причина сделать его еще не усложняла, чем это?

, Конечно, в большинстве (99%) случаев, ясно, является ли язык языком сценариев. Но полагайте, что VM может эмулировать x86 систему команд, например. Разве это не сделало бы x86 байт-код языком сценариев, когда работается VM? Что, если бы кто-то должен был записать компилятор, который превратил бы код жемчуга в собственный исполняемый файл? В этом случае я не знал бы, что называть сам язык больше. Это был бы вывод, который будет иметь значение, не язык.

С другой стороны, я не знаю ни о чем как это сделанное, поэтому на данный момент я - все еще удобные языки сценариев интерпретируемых языков вызова.

49
задан Jack Marchetti 22 April 2011 в 16:40
поделиться

7 ответов

В CLR 2.0 и более ранних версиях Guid.TryParse отсутствует. Он будет доступен, начиная с CLR 4.0 и Visual Studio 2010.

Относительно того, почему его не было. На такие вопросы обычно трудно ответить правильно. Скорее всего, дело было в недосмотре или нехватке времени. Если вы откроете mscorlib в отражателе, вы увидите, что на самом деле есть метод с именем TryParse в Guid , но он частный. В некоторых случаях он также вызывает исключение, так что это не лучший эквивалент Int32.TryParse .

55
ответ дан 7 November 2019 в 11:39
поделиться

Реализация Guid.TryParse с использованием регулярных выражений.

19
ответ дан 7 November 2019 в 11:39
поделиться

IsGuid реализован как метод расширения для строки ...

public static bool IsGuid(this string stringValue)
{
   string guidPattern = @"[a-fA-F0-9]{8}(\-[a-fA-F0-9]{4}){3}\-[a-fA-F0-9]{12}";
   if(string.IsNullOrEmpty(stringValue))
     return false;
   Regex guidRegEx = new Regex(guidPattern);
   return guidRegEx.IsMatch(stringValue);
}
10
ответ дан 7 November 2019 в 11:39
поделиться

С точки зрения того, почему его нет, это недосмотр. В .NET 4 будет Guid.TryParse (подробнее см. сообщение в блоге BCL ).

5
ответ дан 7 November 2019 в 11:39
поделиться

Это должно сработать:

@"^\{?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}\}?$"
0
ответ дан 7 November 2019 в 11:39
поделиться

Насколько мне известно, на данный момент в .NET Framework нет функций TryParse. Вам придется прибегнуть к RegEx или к опции try-catch. RegEx - это не моя чашка чая, поэтому я уверен, что кто-то другой отправит ответ.

Исключения являются дорогостоящими с точки зрения производительности, поэтому я голосую за вариант RegEx.

0
ответ дан 7 November 2019 в 11:39
поделиться

Вы можете написать свой собственный TryParse как метод расширения для Guid. Затем, когда появляется «настоящий» от MS, вы уже готовы и не должны менять.

0
ответ дан 7 November 2019 в 11:39
поделиться
Другие вопросы по тегам:

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