When the syntax new Guid() (i.e. parameterless instantiation) is used, it must be that one of three things is wanted:
Guid.Empty is clearer. Guid.NewGuid() should be used. This rule raises an issue when a parameterless instantiation of the Guid struct is found.
public void Foo()
{
var g1 = new Guid(); // Noncompliant - what's the intent?
Guid g2 = new(); // Noncompliant
var g3 = default(Guid); // Noncompliant
Guid g4 = default; // Noncompliant
}
public void Foo(byte[] bytes)
{
var g1 = Guid.Empty;
var g2 = Guid.NewGuid();
var g3 = new Guid(bytes);
}