Если это не делает / , не был бы работать на ЦП, это - сценарий мне. Если интерпретатор должен работать на ЦП ниже программы, то это - сценарий и язык сценариев.
Никакая причина сделать его еще не усложняла, чем это?
, Конечно, в большинстве (99%) случаев, ясно, является ли язык языком сценариев. Но полагайте, что VM может эмулировать x86 систему команд, например. Разве это не сделало бы x86 байт-код языком сценариев, когда работается VM? Что, если бы кто-то должен был записать компилятор, который превратил бы код жемчуга в собственный исполняемый файл? В этом случае я не знал бы, что называть сам язык больше. Это был бы вывод, который будет иметь значение, не язык.
С другой стороны, я не знаю ни о чем как это сделанное, поэтому на данный момент я - все еще удобные языки сценариев интерпретируемых языков вызова.
В CLR 2.0 и более ранних версиях Guid.TryParse отсутствует. Он будет доступен, начиная с CLR 4.0 и Visual Studio 2010.
Относительно того, почему его не было. На такие вопросы обычно трудно ответить правильно. Скорее всего, дело было в недосмотре или нехватке времени. Если вы откроете mscorlib в отражателе, вы увидите, что на самом деле есть метод с именем TryParse в Guid
, но он частный. В некоторых случаях он также вызывает исключение, так что это не лучший эквивалент Int32.TryParse
.
Реализация Guid.TryParse с использованием регулярных выражений.
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);
}
С точки зрения того, почему его нет, это недосмотр. В .NET 4 будет Guid.TryParse
(подробнее см. сообщение в блоге BCL ).
Это должно сработать:
@"^\{?[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}\}?$"
Насколько мне известно, на данный момент в .NET Framework нет функций TryParse. Вам придется прибегнуть к RegEx или к опции try-catch. RegEx - это не моя чашка чая, поэтому я уверен, что кто-то другой отправит ответ.
Исключения являются дорогостоящими с точки зрения производительности, поэтому я голосую за вариант RegEx.
Вы можете написать свой собственный TryParse как метод расширения для Guid. Затем, когда появляется «настоящий» от MS, вы уже готовы и не должны менять.