(System.Guid型への)キャストステートメントが無効になるのはなぜですか(tryブロックの2行目)?
たとえば、「5DD52908-34FF-44F8-99B9-0038AFEFDB81」という値の文字列があるとします。それをGUIDに変換したいと思います。それは不可能ですか?
Guid ownerIdGuid = Guid.Empty;
try
{
string ownerId = CallContextData.Current.Principal.Identity.UserId.ToString();
ownerIdGuid = (Guid)ownerId;
}
catch
{
// Implement catch
}
これを試して:
Guid ownerIdGuid = Guid.Empty;
try
{
string ownerId = CallContextData.Current.Principal.Identity.UserId.ToString();
ownerIdGuid = new Guid(ownerId);
}
catch
{
// implement catch
}
これを試して:
ownerIdGuid = Guid.Parse(ownerId);
ownerId
は文字列です。Guid
に直接キャストすることはできません。
string
からGuid
に直接キャストすることはできません。代わりに、次のいずれかを使用します。
Guid.Parse
(無効な形式でFormatException
をスロー);またはGuid.TryParse
(無効な形式ではfalseを返します)次のいずれかを試してください。
Guid.Parse
Guid.TryParse
Gruid.TryParseExact
.NET 4.0(または3.5)
文字列からGuidに変換するにはGuid.Parseを使用する必要があります
System.Guid x = new System.Guid( "5DD52908-34FF-44F8-99B9-0038AFEFDB81")は動作し、求められていることに答えます
(私はこれが古い投稿であることを知っています)