Click here to Skip to main content
15,885,244 members
Articles / Programming Languages / C#
Alternative
Tip/Trick

Boxing a value type in .NET to make it a reference type

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
2 Oct 2011CPOL 6.4K  
Mutable structures and classes behave differently when it comes to Generics. Although such differences cause some people to deride mutable structs as evil, they simply offer different semantics from class types. Such semantics are for many purposes superior to those of class types, but some code...

Mutable structures and classes behave differently when it comes to Generics. Although such differences cause some people to deride mutable structs as evil, they simply offer different semantics from class types. Such semantics are for many purposes superior to those of class types, but some code which expects class-type semantics may be broken if given a struct. For example, value-type entities may be implicitly cast to any implemented interface type, ValueType, or Object. Such casts will cause the system to copy the contents of that entity to a new boxed instance; mutations performed upon that new instance will not affect any other. Personally, I think such implicit behavior is evil (there should be easy ways for structs to explicitly permit such implicit behavior, or for code to explicitly request boxing, but such features don't exist as of .NET 4.0).

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
Unknown
Embedded systems programmer since 1994.

Comments and Discussions

 
-- There are no messages in this forum --