Click here to Skip to main content
Click here to Skip to main content
Alternative Tip

Tagged as

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

, 2 Oct 2011
Rate this:
Please Sign up or sign in to vote.
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)

Share

About the Author

supercat9
Web Developer
Unknown
Embedded systems programmer since 1994.

Comments and Discussions

 
-- There are no messages in this forum --
| Advertise | Privacy | Mobile
Web02 | 2.8.140821.2 | Last Updated 2 Oct 2011
Article Copyright 2011 by supercat9
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid