Explicit operator trong C# dùng để làm gì?

tình hình là mình đang học c# mình không hiểu đoạn này

public static implicit operator Fraction(int theInt )
{
    Console.WriteLine(" In implicitconversion to Fraction");
    return new Fraction(theInt );
}
public static explicit operator int(Fraction theFraction)
{
    Console.WriteLine("Inexplicit conversion to int");
    return theFraction.numerator / theFraction.denominator;
}

implicit operator Fraction(int theInt )explicit operator int(Fraction theFraction) là gì?

Cảm ơn mọi người :sweat_smile:

1 Like

ví dụ đoạn code thế này nè bạn:

Fraction fraction = 4;

Nếu bạn sử dụng hàm implicit thì fraction sẽ bằng 4, rất là bình thường ha. Nhưng nếu bạn xài hàm explicit thì chương trình sẽ báo lỗi, vì kiểu Fraction khác kiểu int :joy: .
Thay vào đó, bạn phải viết:

Fraction fraction = (Fraction) 4;

Sử dụng keyword explicit giúp chúng ta viết chương trình an toàn hơn, vì có khi ta xài chuyển kiểu khi nào mà cũng không biết luôn, mà chương trình vẫn chạy mà không báo lỗi :scream: .

2 Likes

ý mình hỏi cái toán tử operator Fraction(int theInt ) và operator int(Fraction theFraction) là sao mình hok hiểu :sweat_smile:

thui vay hhhhhhhhhh

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