.assembly extern mscorlib { .ver 1:0:5000:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. } .assembly extern Microsoft.VisualBasic { .ver 7:0:5000:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: } .assembly 'end' { .hash algorithm 0x00008004 .ver 0:0:0:0 } .module end.exe // GUID = {E0A43CB3-F3E4-434B-9622-F9E89062E3C6} .class private auto ansi sealed ExpressionLiteralsNothing extends [mscorlib]System.Object { .custom instance void class [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = (01 00 00 00 ) // .... .field public static valuetype ExpressionLiteralsNothing/MyStruct A // method line 1 .method public static default void Main () cil managed { .custom instance void class [mscorlib]System.STAThreadAttribute::.ctor() = (01 00 00 00 ) // .... // Method begins at RVA 0x2050 .entrypoint // Code size 91 (0x5b) .maxstack 3 IL_0000: ldnull IL_0001: dup IL_0002: brtrue.s IL_0014 IL_0004: pop IL_0005: ldtoken ExpressionLiteralsNothing/MyStruct IL_000a: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_000f: call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type) IL_0014: unbox ExpressionLiteralsNothing/MyStruct IL_0019: ldobj ExpressionLiteralsNothing/MyStruct IL_001e: stsfld valuetype ExpressionLiteralsNothing/MyStruct ExpressionLiteralsNothing::A IL_0023: ldsflda valuetype ExpressionLiteralsNothing/MyStruct ExpressionLiteralsNothing::A IL_0028: ldfld string ExpressionLiteralsNothing/MyStruct::Name IL_002d: ldnull IL_002e: ldc.i4.0 IL_002f: call int32 class [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::StrCmp(string, string, bool) IL_0034: ldc.i4.0 IL_0035: beq.s IL_0042 IL_0037: ldstr "Unexpected behavior. A.Name Should be Nothing " IL_003c: newobj instance void class [mscorlib]System.Exception::.ctor(string) IL_0041: throw IL_0042: ldsflda valuetype ExpressionLiteralsNothing/MyStruct ExpressionLiteralsNothing::A IL_0047: ldfld int16 ExpressionLiteralsNothing/MyStruct::Number IL_004c: ldc.i4.0 IL_004d: beq.s IL_005a IL_004f: ldstr "Unexpected behavior. A.Number Should be 0 " IL_0054: newobj instance void class [mscorlib]System.Exception::.ctor(string) IL_0059: throw IL_005a: ret } // end of method ExpressionLiteralsNothing::default void Main () .class nested public sequential ansi sealed MyStruct extends [mscorlib]System.ValueType { .field public string Name .field public int16 Number } // end of class MyStruct } // end of class ExpressionLiteralsNothing