给 C# 中的 Guid 扩展一个 TryParse 方法

由于项目是用 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
{
/// <summary>
/// 尝试将一个字符串转换为 Guid 类型
/// </summary>
/// <param name="s">要转换的字符串</param>
/// <param name="result">当此方法返回时,如果转换成功,则包含与 s 所包含的 Guid 等效的 Guid 值;如果转换失败,则返回 Guid 的默认值。</param>
/// <returns>如果 s 转换成功,则为 true;否则为 false。</returns>
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;
}
}
}

 

运行截图:

谢谢浏览!

转载于:https://www.cnblogs.com/Music/archive/2011/12/15/Guid-TryParse-Extension.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#TryParse方法是一种用于将字符串转换为特定类型的方法,它可以避免在转换失败时引发异常。常见的一些TryParse方法包括Enum.TryParse、DateTime.TryParse、Double.TryParse、Decimal.TryParseGuid.TryParse、TimeSpan.TryParse和int.TryParse等。这些方法可以用于将字符串转换为相应的枚举值、日期时间、浮点数、十进制数、全局唯一标识符、时间间隔和整数等数据类型。 与一些其他的转换方法(如int.Parse)相比,TryParse方法具有更好的容错性。当转换失败时,TryParse方法会返回一个布尔值,指示转换是否成功,并将转换后的值存储在一个输出参数。这样,我们可以根据返回的布尔值来确定转换是否成功,并且不会引发异常。 另外,Convert.ToInt32和(int)也可以将类型转换为整数,但它们的使用方式略有不同。Convert.ToInt32方法可以将各种类型(如字符串、布尔值、日期时间等)转换为整数,而(int)则是一种显式类型转换的方式。int.Parse和Int32.Parse是将字符串转换为整数的方法,如果转换失败会引发异常,而int.TryParse是将字符串转换为整数的另一种方法,它返回一个布尔值来指示转换是否成功,避免了异常的引发。 综上所述,C#TryParse方法是一种更安全、更可靠的数据转换方法,可以避免异常的引发,并提供了更好的容错性。在需要将字符串转换为特定类型时,可以使用相应的TryParse方法来进行转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值