创建一个 Guid -> 从 VB 到 C# 的转换

Creating a Guid -> conversion from VB to C#

我在 VB.Net 中有以下代码,我正在尝试将其转换为 C#。

 listContacts = ACT_FRAMEWORK.Contacts.GetContactsByID(Nothing, New Guid() {New Guid(ContactID)})

以下是我目前的尝试:

 Guid[] test = new Guid[1];
 test[0] = Guid.NewGuid(ContactID);   
 contactList = actApp.Contacts.GetContactsByID(null, test);

以上错误是因为 NewGuid() 没有参数。我也试过了。

test[0] = contactID1;

但是,您不能从字符串转换为 Guid。有人可以帮忙吗?

Guid.NewGuid 是一种方法,您不是从 VB 代码中调用该方法 - 您是在调用 构造函数 接受一个字符串.您可以在 C# 中调用相同的构造函数:

// Using an array initializer for simplicity
Guid[] test = { new Guid(ContactID) };

或者,如果您想按照 VB 代码在一行中拨打电话:

contactList = actApp.Contacts.GetContactsByID(null, new[] { new Guid(ContactID) });

我觉得 NewGuid 有那个名字而不是 CreateGuid 是一种耻辱,但这就是生活:(

当然,使用 Guid.Parse 也行 - 从 .NET Core source code 来看,它们的行为非常相似;构造函数处理溢出异常的方式略有不同。

尝试Guid.Parse(ContactID.ToString());

如果ContactID实际上是一个字符串,简单写Guid.Parse(ContactID);