3

我在 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。有人能帮忙吗?

4

2 回答 2

11

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 源代码来看,它们的行为非常相似;构造函数只是处理溢出异常略有不同。

于 2018-02-13T11:45:11.887 回答
1

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

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

于 2018-02-13T12:19:35.127 回答