Not here at struct. For all practical purposes, it System.Int32 structis a built-in primitive type, in the sense that the compiler recognizes them and generates special instructions when processing expressions of primitive types. The only place where int(or any other struct, for that matter) is wrapped during the box conversion, which is required when you want to pass intto the API that accepts the object.
The biggest difference between handling Java and C # primitives is that you can use C # primitives where custom types can be used struct, especially in general C # arguments, while Java treats primitives as a completely separate group of types.
source
share