Advertisement
fcamuso

typeof GetType is

Dec 17th, 2020
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.42 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace OOP_ereditarietà2
  5. {
  6.   class Program
  7.   {
  8.  
  9.     static void f(Figura f)
  10.     {
  11.       if (f.GetType() == typeof(Cerchio) ) return;
  12.       Console.WriteLine($"Si tratta di un {f.GetType()}");
  13.     }
  14.  
  15.     static void Main(string[] args)
  16.     {
  17.  
  18.       List<Figura> figure = new List<Figura>();
  19.       figure.Add(new Figura());
  20.       figure.Add(new Cerchio());
  21.       figure.Add(new Quadrato());
  22.  
  23.       //foreach (Cerchio item in figure) item.Disegna();
  24.       //foreach (Figura f in figure) Console.WriteLine( f.GetType() );
  25.  
  26.       Type t = figure[1].GetType();
  27.  
  28.       foreach (Figura figura in figure) f(figura);
  29.  
  30.       if (figure[0] is Figura) Console.WriteLine("È una figura");
  31.       if (figure[1] is Cerchio) Console.WriteLine("È un cerchio");
  32.       if (figure[2] is Figura) Console.WriteLine("È una figura");
  33.      
  34.       Console.WriteLine(figure[1] is Cerchio);
  35.       Console.WriteLine(figure[1] is Figura);
  36.  
  37.  
  38.     }
  39.   }
  40.  
  41.  
  42.   class Figura
  43.   {
  44.     public virtual void Disegna() { }
  45.   }
  46.  
  47.   class Quadrato : Figura
  48.   {
  49.     public override void Disegna()
  50.     {
  51.       Console.WriteLine("Disegna Quadrato");
  52.     }
  53.   }
  54.  
  55.   class Cerchio : Figura
  56.   {
  57.     public double Raggio {get; set;} = 0;
  58.     public override void Disegna()
  59.     {
  60.       Console.WriteLine("Disegna Cerchio");
  61.     }
  62.  
  63.     public double crf() => 2 * Math.PI * Raggio;
  64.   }
  65.  
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement