.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

83 lines
2.2 KiB

.class public auto ansi sealed EvType extends [mscorlib]System.MulticastDelegate
{
// Methods not included. Just the run of the mill ctor + {Begin|End}?Invoke
}
.class public auto ansi serializable beforefieldinit OwningClass
{
.field class EvType EvName
.event EvType EvName
{
.addon instance void OwningClass::add_EvName(class EvType)
.removeon instance void OwningClass::remove_EvName(class EvType)
}
.method public hidebysig specialname
instance void add_EvName (
class EvType 'value'
) cil managed
{
.maxstack 3
.locals init (
[0] class EvType,
[1] class EvType
)
IL_0000: ldarg.0
IL_0001: ldfld class EvType OwningClass::EvName
IL_0006: stloc.0
// loop start (head: IL_0007)
IL_0007: ldloc.0
IL_0008: stloc.1
IL_0009: ldarg.0
IL_000a: ldflda class EvType OwningClass::EvName
IL_000f: ldloc.1
IL_0010: ldarg.1
IL_0011: call class [mscorlib]System.Delegate [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
IL_0016: castclass EvType
IL_001b: ldloc.0
IL_001c: call !!0 [mscorlib]System.Threading.Interlocked::CompareExchange<class EvType>(!!0&, !!0, !!0)
IL_0021: stloc.0
IL_0022: ldloc.0
IL_0023: ldloc.1
IL_0024: bne.un IL_0007
// end loop
IL_0029: ret
} // end of method OwningClass::add_EvName
.method public hidebysig specialname
instance void remove_EvName (
class EvType 'value'
) cil managed
{
.maxstack 3
.locals init (
[0] class EvType,
[1] class EvType
)
IL_0000: ldarg.0
IL_0001: ldfld class EvType OwningClass::EvName
IL_0006: stloc.0
// loop start (head: IL_0007)
IL_0007: ldloc.0
IL_0008: stloc.1
IL_0009: ldarg.0
IL_000a: ldflda class EvType OwningClass::EvName
IL_000f: ldloc.1
IL_0010: ldarg.1
IL_0011: call class [mscorlib]System.Delegate [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
IL_0016: castclass EvType
IL_001b: ldloc.0
IL_001c: call !!0 [mscorlib]System.Threading.Interlocked::CompareExchange<class EvType>(!!0&, !!0, !!0)
IL_0021: stloc.0
IL_0022: ldloc.0
IL_0023: ldloc.1
IL_0024: bne.un IL_0007
// end loop
IL_0029: ret
} // end of method OwningClass::remove_EvName
} // end of class OwningClass