Как преобразовать GUID в строку в C #? - PullRequest
45 голосов
/ 09 ноября 2009

Я новичок в C #.

Я знаю в vb.net, я могу сделать это:

Dim guid as string = System.Guid.NewGuid.ToString

В C # я пытаюсь сделать

String guid = System.Guid.NewGuid().ToString;

но я получаю " Невозможно преобразовать группу методов" ToString "в строку типа" не делегат ". Вы намеревались вызвать метод ?" ошибка.

Ответы [ 9 ]

76 голосов
/ 09 ноября 2009

Вы пропускаете () после ToString, который помечает его как вызов функции вместо ссылки на функцию (тип, который вы передаете делегатам), что, кстати, является причиной того, что в c # нет оператора AddressOf, это подразумевается по тому, как вы печатаете.

Попробуйте это:

string guid = System.Guid.NewGuid().ToString();
75 голосов
/ 28 августа 2013

Согласно MSDN метод Guid.ToString(string format) возвращает строковое представление значения этого экземпляра Guid согласно предоставленному спецификатору формата.

Примеры:

  • guidVal.ToString() или guidVal.ToString("D") возвращает 32 цифры разделенные дефисами: 00000000-0000-0000-0000-000000000000

  • guidVal.ToString("N") возвращает 32 цифры: 00000000000000000000000000000000

  • guidVal.ToString("B") возвращает 32 цифры, разделенные дефисами, заключенные в фигурные скобки: {00000000-0000-0000-0000-000000000000}
8 голосов
/ 09 ноября 2009

В Visual Basic вы можете вызывать метод без параметров без фигурных скобок (()). В C # они обязательны. Поэтому вы должны написать:

String guid = System.Guid.NewGuid().ToString();

Без фигурных скобок вы присваиваете сам метод (а не его результат) переменной guid, и, очевидно, метод не может быть преобразован в String, следовательно, ошибка.

6 голосов
/ 09 ноября 2009
String guid = System.Guid.NewGuid().ToString();

В противном случае это делегат.

5 голосов
/ 09 ноября 2009

вам не хватает () в конце ToString.

5 голосов
/ 09 ноября 2009

Вам нужно

String guid = System.Guid.NewGuid().ToString();
4 голосов
/ 09 ноября 2009

Вы написали

String guid = System.Guid.NewGuid().ToString;

или

String guid = System.Guid.NewGuid().ToString();

обратите внимание на парантез

3 голосов
/ 24 октября 2018
Guid guidId = Guid.Parse("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
string guidValue = guidId.ToString("D"); //return with hyphens
2 голосов
/ 13 марта 2019

Вот примеры вывода из каждого спецификатора формата:

N: cd26ccf675d64521884f1693c62ed303
D: cd26ccf6-75d6-4521-884f-1693c62ed303
B: {cd26ccf6-75d6-4521-884f-1693c62ed303}
P: (cd26ccf6-75d6-4521-884f-1693c62ed303)
X: {0xcd26ccf6,0x75d6,0x4521,{0x88,0x4f,0x16,0x93,0xc6,0x2e,0xd3,0x03}}

По умолчанию D.

Запустите это сами .

...