Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Drawing;
- namespace overload_op_funzioni
- {
- class Frazione
- {
- public int Num { get; set; } = 0;
- private int den;
- public int Den
- {
- get => den;
- set
- {
- if (value == 0) throw new ArgumentException("Denominatore zero");
- den = value;
- }
- }
- public Frazione() { Den = 1; }
- public Frazione(int num, int den)
- { Num = num; Den = den; }
- public Frazione(int n) : this(n, 1) { }
- public Frazione(string s)
- {
- if (string.IsNullOrEmpty(s)) return;
- //if (s == null || s == "") return;
- string[] dati = s.Split('/'); //da "25ert/7" -> ["25", "7"]
- try
- {
- Num = int.Parse(dati[0]);
- }
- catch (FormatException e)
- {
- throw new FormatException("Stringa non nel formato 'numero/numero' o 'numero'");
- }
- if (dati.Length == 1) // "25"
- Den = 1;
- else
- {
- try
- {
- Den = int.Parse(dati[1]);
- }
- catch (FormatException e)
- {
- throw new FormatException("Stringa non nel formato 'numero/numero' o 'numero'");
- }
- }
- }
- override public string ToString() { return $"{Num}/{Den}"; }
- static public Frazione operator +(Frazione f1, Frazione f2)
- {
- return new Frazione(f1.Num * f2.Den + f2.Num * f1.Den, f1.Den * f2.Den);
- }
- static public Frazione operator +(Frazione f1, int n)
- {
- return f1 + new Frazione(n, 1);
- }
- class Program
- {
- static void Main(string[] args)
- {
- int n1 = 5, n2 = 7;
- int n3 = n1 + n2;
- n3++;
- Frazione f1 = new Frazione(3, 2); // 3/2
- Frazione f2 = new Frazione("4/5"); // 4/5
- //f1 += new Frazione("1/3");
- Frazione f3 = f1 + f2;
- //Console.WriteLine(7 + f1);
- string s = null;
- //Frazione f3 = new Frazione(s);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement