Dexope
Messages postés3Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention 4 mars 2004
-
2 mars 2004 à 16:27
XenonGP
Messages postés43Date d'inscriptiondimanche 2 novembre 2003StatutMembreDerniè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.
Dexope
Messages postés3Date d'inscriptionvendredi 25 juillet 2003StatutMembreDerniè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.
bucherb
Messages postés412Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention13 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
Dexope
Messages postés3Date d'inscriptionvendredi 25 juillet 2003StatutMembreDerniè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
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 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
bucherb
Messages postés412Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention13 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