Giúp cải thiện chương trình số phức cộng số nguyên trong c#

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();
        }
    }
}

Khai báo static operator <tên class>(<đối tượng>) nhé :slight_smile:

2 Likes

Có kiểu ép: tường minh và ngầm định. C# có hỗ trợ: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/user-defined-conversion-operators

1 Like

Tham khảo

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?