In a comment to the previous post about CLR Custom Attributes I listed some other custom attributes that the CLR recognizes (by name). Some of them I previously thought were compiler only custom attributes, so I decided to investigate them.
System.Runtime.CompilerServices.UnsafeValueTypeAttribute
The documentation for this attribute, somewhat uncharacteristically, actually explains what it does, but I decided to try it out.
Here's an example that demonstrates what it does:
using System;
using System.Runtime.CompilerServices;
//[UnsafeValueType]
struct Foo {
public int field;
}
class Program {
[MethodImpl(MethodImplOptions.NoOptimization)]
static void Main() {
int i = 1234;
Foo foo = new Foo();
Read more: IKVM.NET Weblog
QR: