C sharp/Operatori: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica
m Update syntaxhighlight tags - remove use of deprecated <source> tags
 
Riga 25:
|-
|<code>a++</code>|| &nbsp; || L'operatore unario <code>++</code> opera su un solo argomento. Quando è inserito '''dopo''' l'argomento, restituisce prima il valore dell'argomento e poi ne incrementa di uno il valore. Ad esempio:
<sourcesyntaxhighlight lang=csharp>
int a = 4;
System.Console.WriteLine(a++); //stampa 4
// ora a contiene il valore 5
</syntaxhighlight>
</source>
|-
|<code>++a</code>|| &nbsp; ||L'operatore unario <code>++</code> opera su un solo argomento. Quando è inserito '''prima''' dell'argomento, prima incrementa di uno l'argomento e poi ne restituisce il valore . Ad esempio:
<sourcesyntaxhighlight lang=csharp>
int a = 4;
System.Console.WriteLine(++a); //stampa 5
// ora a contiene il valore 5
</syntaxhighlight>
</source>
|-
|<code>a--</code> e <code>--a</code> || &nbsp; || Analogamente
Riga 59:
|-
|<code>a & b</code> (''bitwise and'') || L'operatore binario <code>&</code> valuta entrambi gli operandi e ne restituisce la congiunzione logica (et) dei loro valori. Se gli operandi sono interi, la congiunzione è fatta a livello di bit:
<sourcesyntaxhighlight lang=csharp>
bool a = true;
bool b = false;
Riga 67:
int n2 = 2; //in binario 10
int n3 = n1 & n2; //vale 100, cioè 4
</syntaxhighlight>
</source>
|-
|<code>a <nowiki>|</nowiki> b</code> || L'operatore binario <nowiki>|</nowiki> valuta entrambi gli operandi e ne restituisce la disgiunzione logica (vel) dei loro valori. Se gli operandi sono interi, la disgiunzione è fatta a livello di bit:
<sourcesyntaxhighlight lang=csharp>
bool a = true;
bool b = false;
Riga 78:
int n2 = 2; //in binario 10
int n3 = n1 | n2; //vale 111, cioè 7
</syntaxhighlight>
</source>
|-
|<code>a <nowiki>^</nowiki> b</code> || L'operatore binario <code>^</code> valuta entrambi gli operandi e ne restituisce la disgiunzione non inclusiva logica (aut) dei loro valori. Se gli operandi sono interi, la disgiunzione è fatta a livello di bit:
<sourcesyntaxhighlight lang=csharp>
bool a = false;
bool b = false;
Riga 89:
int n2 = 2; //in binario 10
int n3 = n1 ^ n2; //vale 00, cioè 0
</syntaxhighlight>
</source>
|-
|<code>~a</code> || L'operatore unario <code>~</code> lavora su un solo parametro che può essere booleano o intero. Se l'operando è intero, la negazione è fatta a livello di bit:
<sourcesyntaxhighlight lang=csharp>
bool a = false;
bool b = ~a; //true
Riga 98:
int n1 = 5; //in binario 101
int n2 = ~n1; //in binario 010 cioè 2
</syntaxhighlight>
</source>
|}
 
Riga 106:
|-
|<code>a << b</code> ||L'operatore binario <code><<</code> scorre a sinistra i bit del primo argomento di tante posizioni quante indicate nel secondo. Scarta i bit più a sinistra che ha spostato e imposta i nuovi bit di destra su zero:
<sourcesyntaxhighlight lang=csharp>
int a = 7; //in binario 111
int b = a << 1; //in binario 1110 cioè 14;
</syntaxhighlight>
</source>
|-
|<code>a >> b</code> || L'operatore binario <code>>></code> scorre a destra i bit del primo argomento di tante posizioni quante indicate nel secondo. Scarta i bit più a destra che ha spostato e imposta i nuovi bit di destra su zero se il valore non ha segno, altrimenti li imposta sul segno in bit del primo argomento.
Riga 135:
== Assegnazione ==
Gli operatori di assegnazione sono binari; il più semplice è l'operatore <code>=</code>, che assegna il valore del secondo argomento nel primo argomento:
<sourcesyntaxhighlight lang=csharp>
int a = 3;
int b = a; //b è uguale a 3
Riga 141:
//si possono anche comporre le operazioni...
int c = ((a + b) + 3) * a;
</syntaxhighlight>
</source>
 
Il primo argomento dell'operatore di assegnazione (<code>=</code>) è normalmente una variabile.
Riga 151:
|-
|<code>a = b = c</code>|| Uguale a <code>a = (b = c)</code>. Si possono comporre le assegnazioni. È come scrivere <code>b=c</code> e poi <code>a=b</code>. Si possono fare anche calcoli più complessi:
<sourcesyntaxhighlight lang=csharp>
int a = 3;
int b;
Riga 161:
b = a;
int c = 3 * b + 2; //c è uguale a 11
</syntaxhighlight>
</source>
|}
 
Riga 196:
|-
|<code>a ? b : c</code>|| L'operatore ternario <code>? :</code> dapprima valuta il valore logico dell'operando a. Se esso è vero, ritorna il valore dell'espressione b, altrimenti quella dell'espressione c. Esempio:
<sourcesyntaxhighlight lang=csharp>
bool a = true;
int b = 5;
int c = 2;
int x = a ? b : c; // restituisce 5 perché a è true
</syntaxhighlight>
</source>
|}