由于项目是用 VS 2008 开发的,一直不知道原来 .NET 4.0 中 Guid 已经有了 Guid.TryParse 方法了。我这个方法适用于 VS 2008 开发的项目。废话不多说,直接贴代码,代码很简单:
using System; namespace ConAppGuidExtensions { class Program { static void Main(string[] args) { string s = Guid.NewGuid().ToString(); Guid result; if(GuidExtensions.TryParseGuid(s,out result)) { Console.WriteLine("转换成功!返回值:" + result.ToString()); } s = "sldfkjs"; if (GuidExtensions.TryParseGuid(s, out result)) { Console.WriteLine("转换成功!返回值:" + result.ToString()); } else { Console.WriteLine("转换失败!返回值:" + result.ToString()); } } } class GuidExtensions { ////// 尝试将一个字符串转换为 Guid 类型 /// /// 要转换的字符串 /// 当此方法返回时,如果转换成功,则包含与 s 所包含的 Guid 等效的 Guid 值;如果转换失败,则返回 Guid 的默认值。 ///如果 s 转换成功,则为 true;否则为 false。 public static bool TryParseGuid(string s, out Guid result) { if(string.IsNullOrEmpty(s)) { result = default(Guid); return false; } Guid? tempGuid; try { tempGuid = new Guid(s); } catch (Exception) { tempGuid = null; } bool flag; if (tempGuid.HasValue) { result = tempGuid.Value; flag = true; } else { result = default(Guid); flag = false; } return flag; } } }
运行截图:
谢谢浏览!