using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace indexatori
{
class tablou
{
private int n;//nr de elemente
private int[] a;//elementele
public int N //proprietate pentru n
{
set { n = value; }
get { return n; }
}
public tablou()//constructor pt tablou cu 0 elem
{
n = 0;
a = new int[100];
}
public tablou(int n)//constructor pt tablou cu n elem
{
this.n = n;
a = new int[n];
}
public int this[int i]//indexator
{
get
{//returneaza tablou[i]
if (i < 0) return a[0];
else if (i >= n) return a[n - 1];
else return a[i];
}
set //seteaza tablou[i]
{ if(i>=0 && i<n) a[i] = value; }
}
}
class Program
{
static void Main(string[] args)
{
tablou T = new tablou(10);//creez tablou cu 10 elem
//for (int i = 0; i < T.n; i++) T.a[i] = i;//doar daca datele sunt publice
for (int i = 0; i < T.N; i++)//folosesc T.N - proprietatea
T[i] = i;//folosim indexatorul (set)
for (int i = 0; i < T.N; i++)
Console.Write(T[i] + " ");//foloseste indexatorul (get)
Console.WriteLine();
Console.WriteLine(T[-45]);//nu da eroare si scrie T[0]
T[6756] = 3;//nu da eroare, dar nu face atribuirea
Console.ReadKey();
}
}
}
|