בהמשך להסבר איך דורסים את האופרטורים הרגילים, נראה כאן איך אפשר לממס אופרטרים של casting - למה הכוונה, נניח שיש את המחלקה הבאה
כל פעם שנרצה לייצר מופע נצרך לכתוב כך:
class Dolar
{
public int Value { get; set; } public Dolar(int value)
{
Value = value;
}
}
{
public int Value { get; set; } public Dolar(int value)
{
Value = value;
}
}
כל פעם שנרצה לייצר מופע נצרך לכתוב כך:
Dolar d1 = new Dolar(50);
למעשה יש דרך שבה נוכל לכתוב כך
Dolar d1 = 50;
וזה בעזרת מימוש implicit operator, נוסיף למחלקה את הקוד הבא
ולמעשה השמה של מספר למופע של Dolar יקרא לפונקצייה הזאת. אנחנו יכולים גם להגדיר explicit operator במקרים שאנחנו חוששים לאיבוד מידע
public static implicit operator Dolar(int value)
{
return new Dolar(value);
}
{
return new Dolar(value);
}
ולמעשה השמה של מספר למופע של Dolar יקרא לפונקצייה הזאת. אנחנו יכולים גם להגדיר explicit operator במקרים שאנחנו חוששים לאיבוד מידע
long l = 50;Dolar d2 = (Dolar)l;
במקרה הזה יתכן שיש במשתנה מספר גדול יותר מ - int ואנחנו רוצים לוודא שהמשתמש יודע מה הוא עושה, ולכן נכתוב
Read more: שלמה גולדברג