Advertisement
fcamuso

Generics - 3: VS ereditarietà

Mar 2nd, 2021
379
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.60 KB | None | 0 0
  1. using System;
  2.  
  3. namespace genericsVSereditarieta
  4. {
  5.   class Program
  6.   {
  7.  
  8.     class Documento
  9.     {
  10.       public string Testo { get; set; }
  11.       public Documento(string testo) { Testo = testo; }
  12.      
  13.       public override string ToString()
  14.       {
  15.         return Testo;
  16.       }
  17.     }
  18.  
  19.     class MyList
  20.     {
  21.       int capacita { get; set; } = 2;
  22.       object[] v = null;
  23.       int inseriti = 0;
  24.       public int count { get { return inseriti; } }
  25.  
  26.       public MyList() { v = new object[capacita]; }
  27.  
  28.       public void Add(object nuovo)
  29.       {
  30.         if (inseriti == capacita) Espandi();
  31.         v[inseriti] = nuovo; inseriti++;
  32.       }
  33.  
  34.       public void Espandi(int di_quanto = 2)
  35.       {
  36.         object[] nuovo = new object[capacita + di_quanto];
  37.         v.CopyTo(nuovo, 0);
  38.         v = nuovo;
  39.         capacita += di_quanto;
  40.       }
  41.  
  42.       public object this[int posizione]
  43.       {
  44.         get { return v[posizione]; }
  45.         set { v[posizione] = value; }
  46.       }
  47.     }
  48.  
  49.     class Intruso
  50.     {
  51.      
  52.     }
  53.  
  54.     static void Main(string[] args)
  55.     {
  56.       MyList listaDocumenti = new MyList();
  57.       listaDocumenti.Add(new Documento("doc1"));
  58.       listaDocumenti.Add(new Documento("doc2"));
  59.       listaDocumenti.Add(new Documento("doc3"));
  60.       listaDocumenti.Add(3);
  61.       //listaDocumenti.Add(new Intruso());
  62.  
  63.  
  64.       //for (int i = 0; i < listaDocumenti.count; i++)
  65.       //  Console.WriteLine(listaDocumenti[i]);
  66.  
  67.       Documento d1 = (Documento)listaDocumenti[1];
  68.  
  69.       object obj = 3;   //boxing
  70.       int n = (int)obj; //unboxing
  71.     }
  72.   }
  73. }
  74.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement