JsonValueExtensionsGetEnumOrDefaultTEnum(JsonValue, TEnum, JsonValueType) Method
            Gets the specified 
JsonValue as 
TEnum if 
expectedType is 
Undefined
            or matches the 
Type property of the specified 
json parameter and it can be converted to 
TEnum;
            otherwise, returns 
defaultValue.
            
Namespace: KGySoft.JsonAssembly: KGySoft.Json (in KGySoft.Json.dll) Version: 3.0.0
public static TEnum GetEnumOrDefault<TEnum>(
	this JsonValue json,
	TEnum defaultValue = null,
	JsonValueType expectedType = JsonValueType.Undefined
)
where TEnum : struct, new()
<ExtensionAttribute>
Public Shared Function GetEnumOrDefault(Of TEnum As {Structure, New}) ( 
	json As JsonValue,
	Optional defaultValue As TEnum = Nothing,
	Optional expectedType As JsonValueType = JsonValueType.Undefined
) As TEnum
public:
[ExtensionAttribute]
generic<typename TEnum>
where TEnum : value class, gcnew()
static TEnum GetEnumOrDefault(
	JsonValue json, 
	TEnum defaultValue = nullptr, 
	JsonValueType expectedType = JsonValueType::Undefined
)
[<ExtensionAttribute>]
static member GetEnumOrDefault : 
        json : JsonValue * 
        ?defaultValue : 'TEnum * 
        ?expectedType : JsonValueType 
(* Defaults:
        let _defaultValue = defaultArg defaultValue null
        let _expectedType = defaultArg expectedType JsonValueType.Undefined
*)
-> 'TEnum  when 'TEnum : struct, new()
- json  JsonValue
- The JsonValue to be converted to TEnum.
- defaultValue  TEnum  (Optional)
- The value to be returned if the conversion fails. This parameter is optional.
            
 Default value: .
- expectedType  JsonValueType  (Optional)
- The expected Type of the specified json parameter,
            or Undefined to allow any type. This parameter is optional.
            
 Default value: Undefined.
- TEnum
- The type of the enumeration. Must be an Enum type.
TEnumA 
TEnum value if 
json could be converted; otherwise, 
defaultValue.In Visual Basic and C#, you can call this method as an instance method on any object of type 
JsonValue. When you use instance method syntax to call this method, omit the first parameter. For more information, see 
Extension Methods (Visual Basic) or 
Extension Methods (C# Programming Guide).