using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace statici
{
class C
{
public int x;//data membru nestatica
private static int y;//data membru statica
public static int Y// corect, dar gresit fara static
{
set
{ y = value;
//x = value;//gresit, nu pot accesa nestatic din static
}
get
{ return y; }
}
public void F()//metoda nestatica
{//are acces la toti membrii
x = 200;
y = 300;
}
public static void G()//metoda statica
{// are acces doar la membrii statici
//x = 200;//eroare - nu poate accesa camp nestatic din functie statica
y = 400;
}
}
class Program
{
static void Main(string[] args)
{
C v;//un obiect v din clasa C
//v.x = 100;//eroare deoarece v nu este creat
//v.F();//eroare deoarece v nu este creat
//C.x = 89;//gresit, x e nestatic si se acceseza prin obiect
C.Y = 100;//corect deoarece y este static si creat automat la compilare
Console.WriteLine(C.Y);
v = new C();//creez v
C z = new C();//creez z
v.x = 100; //corect deoarece v este creat
z.x = 50;//corect deoarece z este creat
Console.WriteLine(v.x);
v.F();//corect deoarece v este creat
Console.WriteLine(v.x + " " + C.Y);
C.G();//corect, static prin intermediul numelui clasei
Console.WriteLine(v.x + " " + C.Y);
Console.WriteLine(z.x + " " + C.Y);
Console.ReadKey();
}
}
}
Exemplu de definire si utilizare a membrilor statici ai unei clase.
|