Создание Guid -> преобразование из VB в 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);

Ошибки abover, потому что NewGuid() не принимает аргументов. Я тоже попробовал.

test[0] = contactID1;

Тем не менее, вы не можете конвертировать из строки в Guid. Может кто-нибудь помочь с этим?

2 ответа

Решение

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, они ведут себя очень похоже; конструктор просто по-разному обрабатывает исключения переполнения.

Пытаться Guid.Parse(ContactID.ToString());

если ContactID на самом деле строка, просто напишите Guid.Parse(ContactID);

Другие вопросы по тегам