1. ホーム
  2. c#

[解決済み] Guid.Parse()とnew Guid() - 違いは何ですか?

2023-04-18 03:03:34

質問

文字列を次のように変換する2つの方法の違いは何ですか? System.Guid ? また、どちらかを選択する理由はあるのでしょうか?

var myguid = Guid.Parse("9546482E-887A-4CAB-A403-AD9C326FFDA5");

または

var myguid = new Guid("9546482E-887A-4CAB-A403-AD9C326FFDA5");

どのように解決するのですか?

Reflector を見てみると、どちらもほぼ同等であることがわかります。

public Guid(string g)
{
    if (g == null)
    {
       throw new ArgumentNullException("g");
    }
    this = Empty;
    GuidResult result = new GuidResult();
    result.Init(GuidParseThrowStyle.All);
    if (!TryParseGuid(g, GuidStyles.Any, ref result))
    {
        throw result.GetGuidParseException();
    }
    this = result.parsedGuid;
}

public static Guid Parse(string input)
{
    if (input == null)
    {
        throw new ArgumentNullException("input");
    }
    GuidResult result = new GuidResult();
    result.Init(GuidParseThrowStyle.AllButOverflow);
    if (!TryParseGuid(input, GuidStyles.Any, ref result))
    {
        throw result.GetGuidParseException();
    }
    return result.parsedGuid;
}