我在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()不带参数,因此abover错误.我也试过了.
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开始,它们的表现非常相似;构造函数只是略微区别地处理溢出异常.