A boxing conversion permits any value-type to be implicitly converted to the type object or to any interface-type implemented by the value-type. Boxing a value of a value-type consists of allocating an object instance and copying the value-type value into that instance.
For example any value-type H, the boxing class would be declared as follows:
class vBox{ H value; H_Box(H h) { value = h; }}
Boxing of a value v of type H now consists of executing the expression new H_Box(v), and returning the resulting instance as a value of type object. Thus, the statementsint i = 12;object box = i;
conceptually correspond toint i = 12;object box = new int_Box(i);
Boxing classes like H_Box and int_Box above don't actually exist and the dynamic type of a boxed value isn't actually a class type. Instead, a boxed value of type G has the dynamic type G, and a dynamic type check using the is operator can simply reference type G.
For example,
int i = 12;object box = i;if (box is int){ Console.Write("Box contains an int");}
will output the string Box contains an int on the console.
A boxing conversion implies making a copy of the value being boxed. This is different from a conversion of a reference-type to type object, in which the value continues to reference the same instance and simply is regarded as the less derived type object.
For example, given the declaration
struct Point{ public int x, y; public Point(int x, int y) { this.x = x; this.y = y; }}
the following statementsPoint p = new Point(10, 10);object box = p;p.x = 20;Console.Write(((Point)box).x);will output the value 10 on the console because the implicit boxing operation that occurs in the assignment of p to box causes the value of p to be copied. Had Point instead been declared a class, the value 20 would be output because p and box would reference the same instance.
At InterviewUp we know often a question can have multiple answers or different strategies as to how to answer a question. We respect and welcome your individualistic and creative interview questions and answers. For anyone who has been through a challenging interview – we are on your side! We want you to succeed. We are a community of positive people who are intent on seeing you succeed at your next interview. We kindly ask to keep answers and comments respectful and constructive. We appreciate it!
Your changes will be visible immediately.
By submitting content, you agree to release your contributions under the Creative Commons Public Domain License
Only public domain resources can be copied without permission. If content is posted which in not in the public domain, please contact InterviewUp and we endeavor to remove the non-public domain content.
Anything submitted to InterviewUp is free game to the world. You submissions may be edited, redistributed, sold for profit or pamphleted in a town near you. Submit only information to InterviewUp that you want to share with the world.
Be kind when submitting and editing information at InterviewUp - a community where everyone can succeed.
get your job site at simplyhired.com
Advertise on this site