//Z1----------------------------------------
static void Main(string[] args)
{
List<string> auti = new List<string> { "audi", "kia", "mercedes", "volvo" };
Func<int, int> autoDuzinaStringa = x => auti[x].Length;
for (int i = 0; i < auti.Count; i++)
{
Console.WriteLine(autoDuzinaStringa(i));
}
}
//Z2---------------------------------------
public class Osoba
{
private string ime;
public string Ime
{
get { return ime; }
set {
if (string.IsNullOrEmpty(value))
{
throw new ArgumentNullException("Ime", "Ime ne smije biti prazno");
}
ime = value;
}
}
private string prezime;
public string Prezime
{
get { return prezime; }
set {
if (string.IsNullOrEmpty(value))
{
throw new ArgumentNullException("Prezime", "Prezime ne smije biti prazno");
}
prezime = value;
}
}
public Osoba(string ime, string prezime)
{
Ime = ime;
Prezime = prezime;
}
}
static void Main(string[] args)
{
try
{
Console.WriteLine("Unesi ime");
string ime = Console.ReadLine();
Console.WriteLine("Unesi prezime");
string prezime = Console.ReadLine();
Osoba os = new Osoba(ime, prezime);
Console.WriteLine(ime + " " + prezime);
}
catch (ArgumentNullException ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
//Z3--------------------------------------------
public class Osoba
{
private double placa = 6000;
public double Placa
{
get { return placa; }
set
{
if (value < 0)
{
throw new Iznimke(placa, value);
}
placa = value;
}
}
}
public class Iznimke : Exception
{
public double Prije { get; private set; }
public double Poslije { get; private set; }
public Iznimke(double staraPlaca, double novaPlaca)
{
Prije = staraPlaca;
Poslije = novaPlaca;
}
}
static void Main(string[] args)
{
try
{
Osoba osoba = new Osoba();
osoba.Placa = 5000;
Console.WriteLine("Unesite novu placu:");
double novaPlaca = Convert.ToDouble(Console.ReadLine());
osoba.Placa = novaPlaca;
}
catch (Iznimke ex)
{
Console.WriteLine("Stara plaća: " + ex.Prije);
Console.WriteLine("Nova plaća: " + ex.Poslije);
}
}
//Z4--------------------------------------------------
internal class Program
{
static void Main(string[] args)
{
Osoba osoba = new Osoba();
osoba.ImePromijenjeno += Osoba_ImePromijenjeno;
osoba.PrezimePromijenjeno += Osoba_PrezimePromijenjeno;
osoba.PlacaPromijenjena += Osoba_PlacaPromijenjena;
osoba.Ime = "Mario";
osoba.Prezime = "Habrun";
osoba.Placa = 7000;
osoba.Ime = Console.ReadLine();
osoba.Prezime = Console.ReadLine();
try
{
osoba.Placa = Convert.ToDouble(Console.ReadLine());
}
catch
{
Console.WriteLine("Neispravan unos za Placu");
}
}
private static void Osoba_ImePromijenjeno(object sender, ImeEventArgs e)
{
Console.WriteLine($"Ime promijenjeno: Prethodno Ime = {e.PrethodnoIme}, Novo Ime = {((Osoba)sender).Ime}");
}
private static void Osoba_PrezimePromijenjeno(object sender, PrezimeEventArgs e)
{
Console.WriteLine($"Prezime promijenjeno: Prethodno Prezime = {e.PrethodnoPrezime}, Novo Prezime = {((Osoba)sender).Prezime}");
}
private static void Osoba_PlacaPromijenjena(object sender, PlacaEventArgs e)
{
Console.WriteLine($"Placa promijenjena: Prethodna Placa = {e.PrethodnaPlaca}, Nova Placa = {((Osoba)sender).Placa}");
}
}
public class ImeEventArgs : EventArgs
{
public string PrethodnoIme { get; private set; }
public ImeEventArgs(string prethodnoIme)
{
PrethodnoIme = prethodnoIme;
}
}
public class PrezimeEventArgs : EventArgs
{
public string PrethodnoPrezime { get; private set; }
public PrezimeEventArgs(string prethodnoPrezime)
{
PrethodnoPrezime = prethodnoPrezime;
}
}
public class PlacaEventArgs : EventArgs
{
public double PrethodnaPlaca { get; private set; }
public PlacaEventArgs(double prethodnaPlaca)
{
PrethodnaPlaca = prethodnaPlaca;
}
}
public class Osoba
{
private int id;
private string ime;
private string prezime;
private double placa;
public int Id
{
get { return id; }
set { id = value; }
}
public string Ime
{
get { return ime; }
set
{
string prethodnoIme = ime;
ime = value;
ImePromijenjeno?.Invoke(this, new ImeEventArgs(prethodnoIme));
}
}
public string Prezime
{
get { return prezime; }
set
{
string prethodnoPrezime = prezime;
prezime = value;
PrezimePromijenjeno?.Invoke(this, new PrezimeEventArgs(prethodnoPrezime));
}
}
public double Placa
{
get { return placa; }
set
{
double prethodnaPlaca = placa;
placa = value;
PlacaPromijenjena?.Invoke(this, new PlacaEventArgs(prethodnaPlaca));
}
}
public event EventHandler<ImeEventArgs> ImePromijenjeno;
public event EventHandler<PrezimeEventArgs> PrezimePromijenjeno;
public event EventHandler<PlacaEventArgs> PlacaPromijenjena;
}