STRUCT VIDE

cyberax51 Messages postés 9 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 26 septembre 2007 - 28 août 2006 à 10:20
cyberax51 Messages postés 9 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 26 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 ...


Cyberax
A voir également:

10 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
28 août 2006 à 12:27
Salut, C'est pourtant bien une structure vide.. Quelle utilisaton veux tu en faire par la suite !?
0
cyberax51 Messages postés 9 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 26 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 ...


Cyberax
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
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...

<hr size="2" />VC# forever
0
cyberax51 Messages postés 9 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 26 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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
29 août 2006 à 09:46
On peut éventuellement les cacher pour qu'elles ne soit pas visible via intellisens, mais on ne peut pas "supprimer" l'héritage non....

<hr size="2" />VC# forever
0
cyberax51 Messages postés 9 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 26 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.

Cyberax
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
30 août 2006 à 09:35
Tu peux jeter un oeil sur ce topic

<hr size="2" />VC# forever
0
cyberax51 Messages postés 9 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 26 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 ...

Arf, que de questions en suspens ! ...

Vraiment merci pour les futurs éclaircissements.

Cyberax
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
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...

<hr size="2" />VC# forever
0
cyberax51 Messages postés 9 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 26 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 ?

Cyberax
0
Rejoignez-nous