static void Main() { Osoba janko = new Student(); Student jankoStudent = janko as Student; if (jankoStudent != null) Console.WriteLine(jankoStudent); else Console.WriteLine("null"); Radnik jankoSljaker = janko as Radnik; if (jankoSljaker != null) Console.WriteLine(jankoSljaker); else Console.WriteLine("null"); try { jankoSljaker = (Radnik)janko; } catch (Exception e) { Console.WriteLine("Bačena iznimka!"); Console.WriteLine(e.Message); } Console.ReadKey(); }
static void Main(string[] args) { Osoba janko = new Student(); Student jankoStudent = janko as Student; if (jankoStudent != null) Console.WriteLine(jankoStudent); else Console.WriteLine("null"); // ovo će biti null: Radnik jankoSljaker = janko as Radnik; if (jankoSljaker != null) Console.WriteLine(jankoSljaker); else Console.WriteLine("null"); // razlika između eksplicitne i uvjetne pretvorbe: eksplicitna će baciti iznimku: try { jankoSljaker = (Radnik)janko; } catch (InvalidCastException e) { Console.WriteLine("Bačena iznimka!"); Console.WriteLine(e.Message); } Console.ReadKey(); }
static void Main(string[] args) { Osoba janko = new Student(); Osoba osoba = new Osoba(); Console.ReadKey(); }
// ovo je efikasniji način pisanja kada želimo napraviti "sigurnu" pretvorbu: // (pogledati i usporediti generirani IL kod za obje metode) static void Pretvorba2() { Osoba janko = new Student(); Student studentJanko = janko as Student; if (studentJanko != null) { } }
// ovo je česti način pisanja kada želimo napraviti "sigurnu" pretvorbu: static void Pretvorba1() { Osoba janko = new Student(); if (janko is Student) { Student studentJanko = (Student)janko; // iskoristi studenta unutar bloka } }
static void Main(string[] args) { Osoba janko = new Student(); Osoba osoba = new Osoba(); if (janko is Osoba) { Console.WriteLine("je"); } else Console.WriteLine("nije"); Console.ReadKey(); }
static void Main(string[] args) { Osoba janko = new Student(); Console.WriteLine(janko is Student); //True Console.WriteLine(janko is Osoba); //True Osoba osoba = new Osoba(); Console.WriteLine(osoba is Student); //False Console.WriteLine(osoba is Osoba); //True Console.ReadKey(); }
static void Main(string[] args) { Osoba janko = new Student(); Osoba osoba = new Osoba(); if (janko is Student) Console.WriteLine("janko je tipa Student \n"); if(janko is Osoba) Console.WriteLine("janko je tipa Osoba\n"); if (osoba is Osoba) Console.WriteLine("osoba je tipa Osoba\n"); if(osoba is Student) Console.WriteLine("osoba je tipa Student\n"); Console.ReadKey(); }
static void Main(string[] args) { Osoba janko = new Student(); Osoba osoba = new Osoba(); // ovo je istina: bool daLiJeStudent = janko is Student; Console.WriteLine("Janko je Student? {0}", daLiJeStudent); // i ovo je istina: bool daLiJeOsoba = janko is Osoba; Console.WriteLine("Janko je Osoba? {0}", daLiJeOsoba); // ovo je istina: bool daLiJeAOsoba = osoba is Osoba; Console.WriteLine("A je Osoba? {0}", daLiJeAOsoba); // ovo nije istina: bool daLiJeAStudent = osoba is Student; Console.WriteLine("A je Student? {0}", daLiJeAStudent); Console.ReadKey(); }