Je sais bien qu'il est impossible de tout connaître en C# mais je pensais connaître au moins tous les opérateurs... et ben non ! Même pas...
Connaissiez vous l'opérateur ??
Cet opérateur est équivalent à a == [col]null[/col] ? b : a
Par exemple, voici le code fournit par MSDN à son sujet :
// nullable_type_operator.cs
using System;
class MainClass
{
static int? GetNullableInt()
{
return null;
}
static string GetStringValue()
{
return null;
}
static void Main()
{
// ?? operator example.
int? x = null;
// y = x, unless x is null, in which case y = -1.
int y = x ?? -1;
// Assign i to return value of method, unless
// return value is null, in which case assign
// default value of int to i.
int i = GetNullableInt() ?? default(int);
string s = GetStringValue();
// ?? also works with reference types.
// Display contents of s, unless s is null,
// in which case display "Unspecified".
Console.WriteLine(s ?? "Unspecified");
}
}
Comme quoi, on en apprend tous les jours !
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
C'est l'équivalent à l'opérateur ternaire , un opérateur que peu de personnes débutantes pense à l'utiliser et le remplace par une alternative à deux branches .
(condition)?vrai:faux
Sympa l'information , je ne le connaissais pas non plus.
__________________________
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne et personne ne sait pourquoi...
Equivalent à l'opérateur ternaire, oui, mais dans un cas bien particulier quand même : c'est uniquement si la condition porte sur null.
Il existe aussi en java ? ou tu fais un peu de C# de temps en temps ?
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
Je n'ai aucune idée si il existe en java , mais je vais me renseigner cela peut être très utile en POO.
Je ne me suis pas encore aventuré énormément en C# , j'espère avoir le temps pour m'y mettre un peu .
__________________________
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne et personne ne sait pourquoi...
Faut pas exagérer non plus... si quasi personne ne le connait c'est qu'il est pas si utile que çà... c'est juste un raccourci de l'opérateur ternaire standard qui s'applique sur une condition bien précise (si null alors...)
... stou ...
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
salut. Comme j'ai pu le lire sur l'opérateur '?'Il n'est pas un operateur ternaire!
Le veritable opérateur ternaire est '?:'
car il utilise 3 opérandes.
Exemple:
boll b = true;
int i =5;
int j = 8;
int k=b ? i : j;
Ici la derniere expression veut dire : si k= i si b est vrai sinon k=j.
L'operateur '?' sans les 2 points, est quand à lui usité dans la manipulation des types "nullables".
__________________________
The last Phoenix.
On parle ici de l'opérateur ?? (en une seule fois), qui est un opérateur binaire (par opposition à ternaire, rien à voir avec les opérateurs binaire & | ou ^) et s'utilise de la façon suivante :
c = a ?? b;
(cf. 1er post).
Quant à l'opérateur ?, c'est un opérateur ternaire. Car en fait, comme ? tout seul n'existe pas, on considère, par abus de langage, que l'opération ... ? ... : ... est propre à l'opérateur ? (tout seul) donc du coup, pas de problème, on peut bien dire qu'il est ternaire.
Mais l'opérateur ?: n'existe pas. On devrait plutôt écrire "? ... :" ou quelque chose du genre, mais du coup on peut se demander ce que sont les trois petits points, etc... et vu qu'on a défini tous les opérateurs d'un seul bloc (pas d'espace ni rien) et que les opérateurs ne sont pas forcément uni-caractère, ben du coup, on dit que ? est un opérateur et qu'il est ternaire. Donc no problème.
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
Premierement avant même de définir un hors sujet, et de jouer sur les mots... Il y a la politesse... donc 'bonjour' en début de message est loin d'être un hors sujet.
Secondement, jouer sur les mots n'est pas très professionnel car le developpement se doit d'être rigoureux.
Troisiement, l'operateur '?' existe bien 'tout seul' en implementation ( et non pas '?... :' ) il est utilisé pour definir des variables de type 'nullable'.
Quatriement, pour ne pas jouer sur les mots... L'operateur '?:' n'est pas dit 'ternaire' mais plus précisement 'operateur conditionnel'.
Cinquimement, l'operateur '??' qualifié de 'binaire' ne l'ai pas car c'est un opérateur 'd'assignation'. Et comme dit précédemment il est usité pour la manipulation des types nullables.
Désolé pour le retard, j'étais chez de la famille.
Consernant Czayfaboo je comprend, mais le fait de jouer sur les mots pour justifier 'un hors sujet' je trouve pas ça très cool.
Je suis quelqu'un de très ouvert, et j'accepte tous les points de vue.
Mais il y a des manières d'exprimer son point de vue...
Cependant, je tiens à dire que je n'ai rien contre lui/elle et qu'il ne faut surtout pas prendre ça mal.
Concernant la question...
Perso... Je ne connais pas énormément VB.NET mais je sais que les types nullables existe sous ce language et que l'utilisation de cet operateur est CLS Compliant donc de l'autre coté il y a bien du code natif généré par le CLR pour être suporter sous VB.NET.
Quand à son implementation... Il faudrait voir la spécification de VB.NET pour
être fixé.
J'y jeterais un coup d'oeil et je posterais un message pour mieux te répondre...
Je veux pas dormir idiot.
Peace ^^
__________________________
The last Phoenix.