2010-10-19 28 views
0

J'ai créé une classe héritée "StorageMedium" à partir d'une base que j'ai appelée "DataTypes". StorageMedium possède deux propriétés, Name() et Capacity(). Dans l'objet DataTypes dont tous les autres objets de la bibliothèque de classes ont été hérités, j'ai supprimé les fonctions Equals, ReferenceEquals, GetHashCode, ToString et GetType, donc ces fonctions ne sont pas consultables dans l'éditeur Visual Studio. Le but est dû au fait que la bibliothèque de classes sera éventuellement utilisée par les utilisateurs qui ne sont pas des «programmeurs», et je veux cacher tout code ou fonction inutile qu'ils pourraient rencontrer.Héritée .Net Classe ToString non substituable

J'ai une deuxième classe qui « crée » les instances du StorageMedium:

Shared ReadOnly Property DVD() As StorageMedium 
     Get 
      Return New StorageMedium(NewMedium.DVD) 
     End Get 
    End Property 

    Shared ReadOnly Property CD() As StorageMedium 
     Get 
      Return New StorageMedium(NewMedium.CD) 
     End Get 
    End Property 

Sur ma page Web, je veux appeler la classe de création et créer une instance de l'StorageMedium et afficher le nom et qualité une chaîne avec le nom et la capacité

Response.Write(StorageMedium.Utils.DVD) 
    DVD: 4.7Gb 

Cependant, lorsque j'utilise la méthode Response.Write il affiche le nom complet de la classe

Response.Write(StorageMedium.Utils.DVD) 
    LC.Utils.Convert.Computer.DataType.StorageMedium 

Il est juste de supposer que cela est probablement dû à la suppression des fonctions Object de base, mais existe-t-il un moyen de "rechooker" ou de recréer une fonction par défaut pour utiliser la fonctionnalité ToString sans créer de propriété "à afficher l'objet si nécessaire?

Merci.

+0

Afficher le code que vous utilisez pour "supprimer" ces méthodes ... il y a plus d'une façon de le faire. –

Répondre

1

Vous pouvez essayer ceci:

public class StorageMedium { 
    // Other code 
    public static implicit operator String(StorageMedium instance) { 
     return "StorageMedium"; // Or whatever string you prefer 
    } 
} 

Bien ToString primordial() est évidemment préféré.

+0

Réponse rapide, merci. –