CompilerMarshalOverride Class

 

Indicates that the modified instance of a variable differs from its true type when marshaling. This class cannot be inherited.

Namespace:   System.Runtime.CompilerServices
Assembly:  mscorlib (in mscorlib.dll)

System.Object
  System.Runtime.CompilerServices.CompilerMarshalOverride

[<AbstractClass>]
[<Sealed>]
type CompilerMarshalOverride = class end

The CompilerMarshalOverride class allows the common language runtime to marshal using the correct sizes.

Some behaviors of the common language runtime are incompatible with some languages. For example, C++ treats Boolean variables as single-byte values, while the common language runtime marshals them as four-byte values to match the BOOLEAN type defined by the Microsoft Win32 API. To work around such issues, the C++ compiler emits this modifier on any wchar_t or bool parameter or function return.

.NET Framework
Available since 2.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: