2013-09-03 1 views
2

En entrevue, on m'avait demandé Boxing and Unboxing et je l'ai expliqué. Après cela, j'ai demandé Generic Collections. J'ai expliqué le code ci-dessous et d'ici ils ont demandé comment l'opération de boxe appliquée ici dans le code ci-dessous. Je ne suis pas sûr de cette réponse.Boxe et Unboxing avec des collections génériques

public abstract class DataAccess<T, TKey> 
{ 
    --CRUD Operations here 
} 

public class AdminDataAccess : DataAccess<Admin, long> 
{ 
    --code here 
} 
+1

Je ne pense pas qu'il y ait des 'boxing' et' unboxing' ici? Est-ce qu'ils plaisantaient avec vous? 'boxing' et' unboxing' impliqueraient ** le type de valeur **. Tout ce que je peux voir, c'est des trucs génériques, je pense que le code contient plus que ce que vous avez posté. –

+1

La boxe ne s'applique pas dans le code que vous avez posté. – Matthew

+0

Oh! Mais j'ai demandé la même chose. Je pensais qu'il pourrait y avoir quelque chose impliqué dans le code. Est-ce que le code au moins implique des techniques communes? –

Répondre

3

Il n'y a pas de boxe. La boxe ne s'applique pas aux paramètres de type génériques. Cela s'applique seulement quand ils sont réellement utilisés dans le code et sont réellement encadrés/non boxés par ledit code.

EDIT: exemple ..an, bien que je pense que je l'ai expliqué assez bien ..

Cela boîte:

public abstract class DataAccess<T, TKey> where TKey : struct { 
    private object _boxedKey; 

    private void DoSomething(TKey key) { 
     _boxedKey = key; 
    } 
} 

Sans un code avec force la boxe/unboxing un type de valeur, votre type générique les paramètres n'ont rien à voir avec la boxe ou le déballage.

+0

Merci, Comment il peut être appliqué ici? Pouvez-vous poster un exemple? –

+0

Exemple fourni .. –

+0

Merci et j'accepte ... –

Questions connexes