Академический Документы
Профессиональный Документы
Культура Документы
(deocamdata facem aplicatia pt. PC pana ajungem la partea unde ne trebuie Emulatorul, adica la interfata cu utilizatorul)
Simboluri si Punctuatie:
Punctuatie: , ; :
Comentariu: //, /* continut */, ///, /** continut */
Directiva de preprocesor: #
Bloc de cod: { continut }
Generic: < continut >
Tipuri NULLe: ?
Caracter de scapare/evadare: \cod
Operatori: + - / * % < > ?? () s.a.m.d.
Intr-un limbaj natural, o expresie reprezinta un context de fraze si clauze ce sunt prezentate coerent si se termina folosind semnul
punct (.). In C# orice declaratie se termina cu semnul punct si virgula (;) si reprezinta o colectie de expresii si comenzi specifice
limbajului. C# este un limbaj free-form (forma libera) astfel ca nu conteaza daca intre x = 2 + si 1; exista spatii astfel ca e totuna:
x=2+
1;
e totuna cu x = 2 + 1;
Sintaxa punct (Dot syntax sau Dot punctuation) reprezinta relatia dintre menbrii. Ea se foloseste pt. a definii metodele (membrii)
unor tinte (clase sau obiecte, namespace-uri). Un exemplu este:
System.Windows.Forms.MessageBox.Show("A nice day!")
Comentariile se pot face folosind // - pt. comentarii pe un singur rand, /* */ - pt comentarii pe mai multe randuri si comentarii
speciale /// si /** */ folosite pt. generarea de cocumentatie ajutatoare pt. clasele create.
Genericele (Generics) sunt tipuri cu parametrii, iar parametrii reprezinta viitoare tipuri. Genericele au fost create pt. ca ele isi
pastreaza esenta. Este ca un fel de template pe baza caruia programatorul poate extinde continutul. Cum Array este un fel de
generic implementat, el este un tip, iar ca parametrii poate lua variabile de alte tipuri, deci un array (tablou) poate contine variabile
de tip Array sau String sau diverse tipuri proprii. Se marcheaza prin adaugarea de <T> dupa definirea clasei, a metodelor etc.
Mai multe detalii in cartea mentionata mai sus.
Tipuri NULLe sunt tipuri de variabile ce nu aloc nici un fel de date variabilei: valuetype? identifier;
Un exemplu: int? i; I va fi o variabila de tip intreg dar nu va contine date.
In versiunea 1.0 si 1.1 a limbajului C#, acest tip nu a existat. Insa a fost propus pt. inegrare in versiunea 2.2 si uitel! Normal orice
variabila primea o valoare aleatoare, insa cand trebuia sa se foloseasca cu alte tehnologii, de ex. cu baze de date unde e
implementat tipul NULL, nu exista o cale usoara pt. programa.
Caractere de scapare (Escape characters) sunt folosite pt. a introduce intr-un sir text un caracter special, ca linie noua spre ex. sau
pt. a introduce caractere Unicode sau Hex.
Apostrof (Single quote) \'
Ghilimele (Double quote) \"
Backlash \\
Null (byte-ul null) \0
Alert \a
Backspace \b
Form feed \f
New line \n // se foloseste pt. a crea o linie noua
Carriage return \r // se foloseste impreuna cu \n pt. a crea o linie noua specifica textului bogat pt. app. Windows
Horizontal tab \t
Unicode character \u
Vertical tab \v
Hexadecimal character(s) \x
Caracterul Verbatim se foloseste pt. a trata sirul text asa cum este. Spre exemplu daca avem sirul “C:\Program Files\” el trebuie
scris “C:\\Program Files\\” pt. ca \ reprezinta un caracter de scapare iar ultimul \ evadeaza ultima “ si da o eroare cum ca sirul nu a
fost inchis. Caracterul verbatim este @ si el se adauga ca prefix sirului: string s = @”C:\Program Files\”;.
Operatorii:
- Unari:
Unary Plus + variable=+5; 5
Unary minus - variable=-(-10); 10
Boolean Negation ! variable=!true; false
Bitwise 1's complement ~ variable=~((uint)1); 4294967294
Prefix Increment ++ ++ variable; 11
Prefix Decrement -- -- variable; 10
Postfix Increment ++ variable ++; 11
Postfix Decrement -- variable --; 10
Cast Operator () variable =(int) 123.45; 123
Function Operator () FunctionCall(parameter); return value
Array Index Operator [] arrayname[iIndex]; nth element
- Binari:
Assignment = variable=10; rezulta 10
Binary Plus + variable=variable + 5; 15
Binary Minus - variable=variable - 10; 5
Multiplication * variable=variable * 5; 25
Division / variable=variable / 5; 5
Modulus % variable=variable % 3; 2
Logical And & variable=5 & 3; 1
Logical Or | variable=5 | 3; 7
Bitwise XOR ^ variable=5 ^ 3; 6
Bitwise Shift Left << variable=5 << 3; 40
Bitwise Shift Right >> variable=5 >> 1; 2
Null Coalescing ?? variableb=variablea??5 2
- Operatori de compunere:
Addition Assignment += variable+=5;
Subtraction Assignment -= variable-=10;
Multiplication Assignment *= variable*=5;
Division Assignment /= variable/=5;
Modulus Assignment %= variable%=3;
And Assignment &= variable&=3;
Or Assignment |= variable|=3;
XOR Assignment ^= variable^= 3;
Left-Shift Assignment <<= variable<<=3;
Right-Shift Assignment >>= variable>>=1
- Operatori buleeni:
Equals ==
Not Equal !=
Less Than <
Greater Than >
And (Short Circuiting) &&
Or (Short Circuiting) ||
And &
Or |
Less Than or Equal <=
Greater Than or Equal >=
Logical XOR ^
- Operatorii ternari (abrevierea if else):
conditie buleana?expresie daca se evalueaza adevarat:expresie daca se evalueaza fals
variabila>5?Console.WriteLine(">5"):Console.WriteLine("<= 5");
- operatorii pointerilor (disponobili in programarea unsafe):
Asterisk Operator1 * declararea unui pointer
Asterisk Operator2 * referirea la un pointer
Ampersand Operator & obtinerea unei adrese
Arrow Operator -> referirea la un pointer si acces de membru