The Artima Developer Community
Sponsored Link

.NET Buzz Forum
Begriffserkl��rung: Boxing und Unboxing

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
-

Posts: 1524
Nickname: nitronic
Registered: Jul, 2006

Norbert Eder works as a software architect.
Begriffserkl��rung: Boxing und Unboxing Posted: Nov 30, 2006 5:50 AM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by -.
Original Post: Begriffserkl��rung: Boxing und Unboxing
Feed Title: Norbert Eder - Living .NET
Feed URL: http://feeds.feedburner.com/NorbertEder-Livingnet
Feed Description: Copyright (c)2005, 2006 by Norbert Eder
Latest .NET Buzz Posts
Latest .NET Buzz Posts by -
Latest Posts From Norbert Eder - Living .NET

Advertisement
F��r die einen ein alter Hut, f��r andere ein Grund um auf die Suche nach Informationen und Erkl��rungen zu gehen. Nun, ein wenig Licht ins Dunkel kann ich hiermit bringen. Es erfolgt nicht nur eine Erkl��rung der beiden Begriffe, sondern auch Hinweise wann diese Techniken eingesetzt werden sollen/k��nnen und wann dies zu vermeiden sind.

Boxing ist die Konvertierung eines Wertetyp in einen Verweistyp. Beispiel:

int i = 999; // Werttyp
object o = (object)i; // Konvertierung in einen Verweistyp


Unboxing ist die Konvertierung eines Verweistyp in einen Wertetyp. Beispiel:

object o = 999; // Wert in einem Verweistyp
int i = (int)o; // Konvertierung in einen Wertetype


Boxing und Unboxing versachen zus��tzlichen Aufwand, daher sollten diese Operationen vermieden werden. Je h��ufiger der entsprechende Code-Bereich ausgef��hrt wird, desto weniger empfhielt sich die Verwendung.

Es sei an dieser Stelle bemerkt, dass auch der Aufruf von virtuellen Methoden, die Strukturen von System.Object erben, unter Boxing fallen. (Beispiel: ToString).

Empfohlene Vorgehensweisen
Um Boxing und Unboxing zu Vermeiden (und somit auch etwaige Performanceprobleme), empfiehlt es sich, einige Punkte einzuhalten. Hier eine (unvollst��ndige) Liste:

- Werden Strukturen definiert, sollten die Methoden GetHashCode, Equals und ToString ��berschrieben werden

- Bestehen Methoden die Parameter vom Typ object besitzen, die jedoch zur ��bergabe von Wertetypen verwenden werden, empfiehlt es sich, ��berladungen zu definieren, die auf den jeweiligen Wertetyp abgestimmt sind.

- Anstatt object-Parameter zu verwenden, empfiehlt sich die Verwendung von Generika.

Wann soll Boxing/Unboxing eingesetzt werden
Manche m��gen mir jetzt vielleicht widersprechen, aber ich pers��nlich empfehle Boxing und Unboxing nicht einzusetzen. Selbst bei Code-Teilen die nur selten ausgef��hrt werden empfiehlt es sich, beispielsweise auf Generika zu setzen oder ��berladungen f��r die entsprechenden Wertetypen zu schaffen. Dadurch erh��ht sich um einen die ��bersichtlichkeit, die Verst��ndlichkeit und vor allem auch die Performance.

Read: Begriffserkl��rung: Boxing und Unboxing

Topic: Warum "Mein Chef will ..."-Projekte meist in die Hose gehen ... Previous Topic   Next Topic Topic: XLINQ - and so it began

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use