Jump to content

Lectii de C# - Variabilele


Recommended Posts

Posted

csharp.jpg

 

 

 

! Acest mic "tutorial" este dedicat persoanelor care deja au putina cunostinta in domeniu!

 

 

 

Pentru a declara o variabila trebuie sa folosim urmatoarea sintaxa:  

datatype identifier;

Spre exemplu, int i;. Aceasta expresie de de tip int este denumita i. Software-ul folosit pentru compilare(Compiler-ul) nu te va lasa sa folosesti functia de compile pana nu ii vei atribuii o valoare acestei expresii. Valoarea i se atribuie prin intermediul operatorului "=".

Exemplu:

i = 10;

De asemenea o alta metoda ar fii aceea de a declara variabila si de a-i atribui valoarea in acelasi timp.

Exemplu:

int i = 10;

Daca vrem sa declaram si sa initializam mai multe variabile intr-o singura structura, spre exemplu int x = 10, y = 20; , tipul de data al lui y este identic cu tipul de data al lui x, in acest caz , tipul de data este int.

Pentru a declara variabile de diferite tipuri, trebuie sa le declaram separat. Nu puteti aloca tipuri diferite de date in cadrul unei declaratii cu mai multe variabile:
 

int x = 10;
bool y = true; // Crearea variabilelor de tip boolean (true & false)
int x = 10, bool y = true; // Acesta nu va putea fi compilat
1
2
3
int x = 10;
bool y = true; // Crearea variabilelor de tip boolean (true & false)
int x = 10, bool y = true; // Acesta nu va putea fi compilat

Atentie la „//” și textul după acesta în exemplele precedente. Acestea sunt comentarii. „//” îi spune compiler-ului să ignore textul care urmează în această linie deoarece este inclus pentru ca un om sa ințeleaga mai bine programul, nu face parte din programul în sine. Vom reveni asupra comentariilor mai tarziu.

 

Initializarea variabilelor

Initializarea variabila demonstreaza un accent pe siguranta C#. Pe scurt, compiler C # cere ca orice variabilă să fie inițializată cu o valoare inițială înainte de a vă referi la acea variabilă într-o operație. Majoritatea compilerelor moderne vor semnala încălcări ale acestui text ca un avertisment, dar compilerl C#, care este totdeauna vigilent, tratează astfel de încălcări ca erori. Acest lucru vă împiedică să preluați neintenționat valorile din memorie rămase din alte programe. C# are două metode pentru a se asigura că variabilele sunt inițializate înainte de utilizare:

           ➤  Variabilele care sunt câmpuri într-o clasă sau structura, dacă nu sunt inițializate în mod explicit, sunt în mod implicit nule, atunci când ele sunt create (clasele și structurile le vom discuta intr-un alt tutorial).

           ➤  Variabilele care sunt locale unei metode trebuie inițializate în mod explicit în cod înainte de orice declarații în care valorile lor sunt utilizate. În acest caz, inițializarea nu trebuie să seîntâmple când variabila este declarată, dar compilerl verifică toate căile posibile prin metoda și indică o eroare dacă aceasta detectează orice posibilitate de utilizare a valorii unei  variabile locale înainte de a fi inițializată.

De exemplu, nu puteți face următoarele în C#:
 

public static int Main()
{
    int d;
    Console.WriteLine(d); // Nu se poate! d nu a fost initializat inainte de folosire
    return 0;
}
1
2
3
4
5
6
public static int Main()
{
    int d;
    Console.WriteLine(d); // Nu se poate! d nu a fost initializat inainte de folosire
    return 0;
}

Observați că acest fragment de cod demonstrează definirea Main() astfel încât să returneze un int în loc de void. Dacă încercați să compilați liniile precedente, veți primi acest mesaj de eroare:

Use of unassigned local variable 'd'
1
Use of unassigned local variable 'd'
Luati in considerare urmatoarea afirmatie:


Something objSomething;
1
Something objSomething;
În C#, această linie de cod va crea doar o referință pentru un obiect, dar această referință nu se referă la orice obiect. Orice încercare de a apela o metodă sau o proprietate împotriva acestei variabile ar rezulta într-o eroare. Initializarea unui obiect de referință în C# necesită utilizarea noului cuvânt cheie. Creați o referință așa cum este prezentat în exemplul anterior și apoi îndreptați referința la un obiect folosind noul cuvânt cheie:


objSomething = new Something(); // creaza ceva pe o anumita multime
1
objSomething = new Something(); // creaza ceva pe o anumita multime
 

Tipul Inferentelor

Tipul inferentelor utilizează cuvântul cheie var. Sintaxa pentru declararea variabilei se modifică într-o oarecare măsură. Compiler-ul „implică” ce tip de variabilă este de la care este inițializată variabila. De exemplu: int someNumber = 0;  devine: var someNumber = 0; . Chiar dacă someNumber nu este niciodată declarat ca fiind un int, compiler-ul figurează acest lucru și someNumber este un int atâta timp cât este în domeniul de aplicare. Odată compilate, cele două afirmații precedente sunt egale. Iată un scurt program pentru a demonstra:


using System;
namespace DEMOPROGRAM
{
    class Program
    {
        static void Main(string[] args)
        {
            var name = "Lectii c# fairside";
            var age = 26;
            var isRabbit = true;
            Type nameType = name.GetType();
            Type ageType = age.GetType();
            Type isRabbitType = isRabbit.GetType();
            Console.WriteLine("name is type " + nameType.ToString());
            Console.WriteLine("age is type " + ageType.ToString());
            Console.WriteLine("isRabbit is type " + isRabbitType.ToString());
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
namespace DEMOPROGRAM
{
    class Program
    {
        static void Main(string[] args)
        {
            var name = "Lectii c# Fairside";
            var age = 26;
            var isRabbit = true;
            Type nameType = name.GetType();
            Type ageType = age.GetType();
            Type isRabbitType = isRabbit.GetType();
            Console.WriteLine("name is type " + nameType.ToString());
            Console.WriteLine("age is type " + ageType.ToString());
            Console.WriteLine("isRabbit is type " + isRabbitType.ToString());
        }
    }
}
Rezultatul din acest program este următorul:


name is type System.String
age is type System.Int32
isRabbit is type System.Bool
1
2
3
name is type System.String
age is type System.Int32
isRabbit is type System.Bool
Există câteva reguli pe care trebuie să le urmați:

             ➤  Variabila trebuie inițializată. În caz contrar, compiler-ul nu are nimic din care să deducă tipul.

             ➤  Initializatorul nu poate fi nul.

             ➤  Initializatorul trebuie sa fie o expresie.

             ➤  Nu puteți seta inițializatorul la un obiect decât dacă creați un obiect nou în inițializator.

După ce variabila a fost declarată și tipul dedus, tipul variabilei nu poate fi modificat. Cand este stabilit, tipul variabilei respectă toate regulile  pe care trebuie să le urmeze orice alt tip de variabilă.

Acesta este finalul primei lectii | Voi  revenii in curand cu continuarea acesteia.

 

  • Like 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...