Advertisement
fcamuso

Generics - 1

Feb 19th, 2021
501
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.40 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Generics1
  5. {
  6.  
  7.  
  8.   class Documento
  9.   {
  10.     public string Testo { get; set; }
  11.     public Documento(string testo) { Testo = testo; }
  12.     public Documento Clona() { return new Documento("il clone"); }
  13.  
  14.   }
  15.  
  16.   class MyList<T>
  17.   {
  18.     int capacita { get; set; } = 2;
  19.     T[] v = null;
  20.     int inseriti = 0;
  21.     public int count { get { return inseriti; } }
  22.  
  23.     public MyList() { v = new T[capacita];  }
  24.  
  25.     public void Add(T nuovo)
  26.     {
  27.       //nuovo.
  28.       if (inseriti == capacita) Espandi();
  29.       v[inseriti] = nuovo; inseriti++;
  30.  
  31.     }
  32.  
  33.     public void Espandi(int di_quanto = 2)
  34.     {
  35.       T[] nuovo = new T[capacita + di_quanto];
  36.       v.CopyTo(nuovo, 0);
  37.       v = nuovo;
  38.       capacita += di_quanto;      
  39.     }
  40.  
  41.     public T this [int posizione]
  42.     {
  43.       get { return v[posizione];  }
  44.       set { v[posizione] = value; }
  45.     }
  46.   }
  47.  
  48.  
  49.   class Program
  50.   {
  51.     static void Main(string[] args)
  52.     {
  53.       MyList<int> listaInteri = new MyList<int>();
  54.  
  55.       MyList<string> listaStringhe = new MyList<string>();
  56.       listaStringhe.Add("prima");
  57.       listaStringhe.Add("seconda");
  58.       listaStringhe.Add("terza");
  59.  
  60.       for (int i = 0; i < listaStringhe.count; i++)
  61.         Console.WriteLine(listaStringhe[i]);
  62.  
  63.  
  64.       MyList<Documento> listaDocumenti = new MyList<Documento>();      
  65.     }
  66.   }
  67. }
  68.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement