Guid.Empty
эквивалентно new Guid()
, что эквивалентно default(Guid)
.Таким образом, вы можете использовать:
public void Problem(Guid optional = default(Guid))
или
public void Problem(Guid optional = new Guid())
Обратите внимание, что значение new Foo()
только применимо, когда:
- Вы действительно вызываете конструктор без параметров
Foo
- это тип значения
Другими словами, когда компилятор знает, что это действительно просто значение по умолчаниюзначение для типа:)
(Интересно, что я на 99,9% уверен, что не вызовет любой пользовательский конструктор new Foo()
, который вы могли создать. Вы не можете создать такойконструктор в типе значения в C #, но вы можете сделать это в IL.)
Вы можете использовать опцию default(Foo)
для любого типа.