cyberax51
Messages postés9Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention26 septembre 2007
-
28 août 2006 à 10:20
cyberax51
Messages postés9Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention26 septembre 2007
-
1 sept. 2006 à 00:21
Salut à tous. Voilà, je me pose une petite question ... Comment créer en C# une structure véritablement vide ... Parce que si on en crée une comme ca :
public struct Vide
{
}
bah elle hérite automatiquement de la classe Object. Et moi je veux pas. Je veux ne pas retrouver les méthodes Equals, ReferenceEquals, GetHashCode, GetType, et ToString. Quelqu'un sait-il comment faire ca ? Merci beaucoup ...
cyberax51
Messages postés9Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention26 septembre 2007 28 août 2006 à 17:57
Elle n'est pas tout à fait vide car elle contient des méthodes héritées de la classe Object du framework. Si possible, et je voudrais savoir si ca l'est, j'aimerai que ma structure n'hérite de rien. Pour ne pas avoir les méthodes que je cite dans mon premier message ...
L'utilisation que je veux en faire c'est créer un nouveau type. Je voudrais avoir une structure tout à fait vide au départ. Mais est-ce que c'est faisable, ca c'est autre chose ... J'ai réussi à remplacer les méthodes héritées par une méthode bidon (avec un override), mais j'ai pas réussi à les supprimer totalement. Même les cacher en les mettant en private c'est pas possible. Le compilo dit qu'on peut pas utiliser override et private en même temps ...
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 28 août 2006 à 18:49
Salut,
Le concept de l'orienté object veut (en C# en tout cas) qu'il y ait une seule et unique class mère, à savoir object. Les autres hérites ensuite directement ou indirectement de cette classe...
cyberax51
Messages postés9Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention26 septembre 2007 29 août 2006 à 09:30
Et on ne peut absolument pas empêcher ca ? Ou du moins, masquer l'héritage au niveau des méthodes de classes ? Les rendre private ou des trucs dans ce genre ? Bon, tant pis.
Cyberax
Vous n’avez pas trouvé la réponse que vous recherchez ?
cyberax51
Messages postés9Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention26 septembre 2007 30 août 2006 à 02:07
C'est vrai ? Alors comment tu ferais ca par exemple ? On peut choisir ce que l'intellisens affiche ? Je savais même pas ... Quelqu'un peut me donner un exemple concret ? Merci beaucoup.
cyberax51
Messages postés9Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention26 septembre 2007 31 août 2006 à 00:41
Merci beaucoup, mais le problème reste entier.
[EditorBrowsable(EditorBrowsableState.Never)] permet de masquer
à l'intellisens une méthode ou une propriété que tu déclares, ou
que tu override, mais pas une méthode static héritée !
Comme tu peux pas modifier sa définition, tu peux pas dire à
l'intellisens de ne pas l'afficher ... C'est dommage d'ailleurs.
Y'aurait pas moyen de passer par une interface ? Je me demande :
n'est-il pas possible de cacher à l'intellisens une propriété
héritée que l'on ne souhaite pas redéfinir ou modifier ? Comme
bool Equals (object objA, object objB) par exemple ...
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 31 août 2006 à 09:41
Je ne sais pas, mais je ne comprend pas pourquoi tu as besoin de faire de telles choses.
Si tu expliques, peut-être qu'on peut trouver un autre moyen...
cyberax51
Messages postés9Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention26 septembre 2007 1 sept. 2006 à 00:21
Bon, ok, je m'explique. Toutes les structures ou classes héritent visiblement de Object. C'est le principe de base de ce type de programmation, ca, je l'ai compris. Maintenant, je voudrai implémenter un nouveau type. On peut appeler ca comme ca. Seulement, je voudrai que, vu de l'utilisateur, cette structure semble complètement vide des méthodes héritées de la classe Object. Je veux obtenir une structure qui hérite de Object, mais sans en avoir l'air (à défaut de ne pas pouvoir créer une structure qui n'hérite de rien du tout).
Il me faudrait un truc qui soit ou semble vide dès le départ. Et je rajouterai alors après ce dont j'ai besoin. Vous croyez que c'est faisable ?