Alias de types

Dexope Messages postés 3 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 4 mars 2004 - 2 mars 2004 à 16:27
XenonGP Messages postés 43 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 6 septembre 2011 - 4 déc. 2004 à 09:40
Je débute sous dotnet avec C# et je bute sur un problème tout con :

Je voudrai donner un alias a un type de base pour réutiliser ce type dans mon source, genre avec une méthode :

TypeAlias MaMethode(...)
{
// mon code
}

Ou et comment faut'il déclarer "TypeAlias" pour que ce soit un équivalent de "uint" par exemple.

Je viens du monde de dephi et j'ai beaucoup de mal a le quitter, ce serait dommage d'abandonner le c# juste pour un détail de ce genre.

Merci pour vos réponses.
A voir également:

8 réponses

gg00xiv Messages postés 656 Date d'inscription mercredi 22 août 2001 Statut Membre Dernière intervention 11 mars 2005 13
2 mars 2004 à 22:52
Si tu veux parler de l'équivalent c/c++ de #typedef, cela n'existe pas en c#.

[Membre du Labo .NET]
0
Dexope Messages postés 3 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 4 mars 2004
3 mars 2004 à 12:48
Merci pour ta réponse,

Je trouve que c'est bien dommage pour l'organisation du code de ne pas avoir d'équivalent, reste à inclure dans le nom des variables ce qu'elle représentent précisément.
0
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
4 mars 2004 à 09:15
Disons que ça n'existe pas, parce que tout simplement ça sert à rien lol... Ou du moins ils n'en ont pas trouvé l'utilité..

Pourtant si tu viens tu delphi tu devrais connaître le notion de classe-objets non? Pour faire ton propre type, crée une classe ;-) Malheureusement tu ne peux pas sous-classer les type de base (Genre int) mais tu peux les intégrer dans une nouvelle classe, ce qui rend la chose tout aussi intéressante que puissante. Je sais ça veux rien dire lol
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
4 mars 2004 à 11:16
Je sais pas si G bien compris ce que tu veux faire mais bon je met quand même ^^ :
using TypeAlias = System.UInt32;


avec ça TypeAlias cool = 1; sera un Uint32

Cocoricoooooooo !!!!
0

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

Posez votre question
Dexope Messages postés 3 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 4 mars 2004
4 mars 2004 à 15:06
@bucher : Effectivement il serais possible d'utiliser uniquement des classes, étant accros a la POO depuis que je programme sous delphi, tout mon code est intégrés dans des objets, même ce qui ne sera instancier qu'une quele fois. Mon problème est que je tente actuellement de faire migrés un projet delphi vers c# qui accéde a l'API winsock et plus particulièrement a la dll "MSWSOCK" qui gére les extensions microsoft pour des applications réseau hautes performances (avec IOCP) ce que ne permet pas les classes defini dans le namespace System.Net.Sockets. Je tente donc d'interfacer l'API winsock (avec du code unsafe donc) et pour des question de lisibilités de code de souhaite définir des équivalences de type de base, plus particuliérement pour les handle de sockets, en delphi j'écrivais par exemple :

var
ClientHandle : TSocket;
ServerHandle : TSocket;

sans alias de type, sous C#, pour que mon code soit un minnimum lisible il faudrai que j'écrive :

uint ClientSocketHandle;
uint ServerSocketHandle;

la ou je souhaiterais écrire :

SocketHandle Client;
SocketHandle Server;

@coq :Tu a tout a fait compris mon probléme, je viens d'essayer ce que tu propose mais pour les types de base cela ne peut être utiliser. Je me demande alors, si je déclare une methode extern, unsafe.. etc pour la fonction :

CloseSocket(uint SocketHandle)

Le type alias SocketHandle dérivé de uint32 sera t'il valide pour l'appel de la function ?

Si vous avait un petit élément de réponse, des critiques (je doit surement dire des tas de bétises) n'hésiter surtout pas
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
4 mars 2004 à 15:20
ben en fait le "type de base" (mot clé) correspond à un type du framework (C juste un alias koi)
uint => System.UInt32
int => System.Int32
string => System.String

Cocoricoooooooo !!!!
0
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
4 mars 2004 à 15:34
pour t'amuser avec les type y a un mot clé spécial pour les déclarer justement "unsafe" et qu'il t'emmerde plus avec.. cherche un peu tu dois trouver qqch dans la doc
0
XenonGP Messages postés 43 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 6 septembre 2011
4 déc. 2004 à 09:40
Hello, je ne sais pas si j'ai bien compris mais si tu veux pouvoir définir tes propres types, rien de + simple:

public struct couleur
{
public int rouge,vert,bleu;
}
public couleur[] c=new couleur[1000];

En fait, c juste en utilisant les structures ^^

(info: c un code tout droit tiré d'une de mes sources alors adaptez ^^)

++
0
Rejoignez-nous