Mọi người cho em hỏi có cách nào thay thế đoạn Sophuc.ToSophuc(1); thành (Sophuc) 1; để cho nó giống với cú pháp ép kiểu tường minh . Và một câu hỏi nữa là có cách nào để nó tự chuyển kiểu ngầm định không ạ .
using System;
namespace OperatorOverloading
{
class Sophuc
{
// Property
private float thuc;
private float ao ;
// Method
public Sophuc()
{
thuc = 0;
ao = 0;
}
public Sophuc (int i )
{
thuc = i;
ao = 0;
}
public void Nhap ()
{
Console.Write("Phan thuc : ");
thuc = float.Parse(Console.ReadLine());
Console.Write("Phan ao : ");
ao = float.Parse(Console.ReadLine());
}
public void Xuat ()
{
Console.WriteLine($" {thuc} + {ao}i");
}
public static Sophuc operator + (Sophuc a, Sophuc b)
{
Sophuc c = new Sophuc();
c.thuc = a.thuc + b.thuc;
c.ao = a.ao + b.ao;
return c;
}
public static Sophuc ToSophuc (int i)
{
return new Sophuc(i);
}
}
class Program
{
static void Main ()
{
Sophuc a = new Sophuc();
a.Nhap();
Sophuc b = new Sophuc();
b.Nhap();
Sophuc Tong = new Sophuc();
Tong = a + Sophuc.ToSophuc(1);
Tong.Xuat();
}
}
}