Ich glaube, der Standardwert ist 0, so dass Sie einen ungültigen HardwareInterfaceType generiert haben. Ich persönlich mag diese Art von Codierung für Enums nicht. IMO ist es klarer, einen Enum-Wert von "Undefined" oder "None" zu definieren und dann stattdessen die Variable zu initialisieren.
Einer der "Gotchas" mit Aufzählungen ist, dass sie auf einen Wert initialisiert werden können, der in der Aufzählung nicht vorhanden ist. Möglicherweise hat der ursprüngliche Programmierer gedacht, dass die Enumeration mit einem gültigen Wert in der Enum-Definition initialisiert wird, wenn er das Schlüsselwort "default" verwendet. Nicht wahr, und IMO ist dies nicht eine gute Verwendung des "Standard" -Schlüsselwort überhaupt.
var foobar = default(HardwareInterfaceType);
Console.WriteLine(Enum.IsDefined(typeof(HardwareInterfaceType), foobar)); //returns false
Console.WriteLine(foobar); //returns 0
+1 für den "Undefined" -Wert zugewiesen – Christian