Для явного преобразования пользовательского типа (класс или структура) во встроенный тип (int, double и т.д.) применяется специальный тип перегрузочного операторного метода operator. Он является статическим и определяется в классе или структуре.
После преобразования, с объектом класса или структуры можно производить любые арифметические или другие действия.
Синтаксис:
public static explicit operator тип_возврата (пользовательский_тип obj) {
return значение;
}
После преобразования, с объектом класса или структуры можно производить любые арифметические или другие действия.
Синтаксис:
public static explicit operator тип_возврата (пользовательский_тип obj) {
return значение;
}
Main.cs
using
System;
public
class
Five {
-
int
val = 5;
-
//специальный тип перегрузочного операторного метода operator
-
public
static
explicit
operator
int
(Five obj) {
-
return
obj.val;
-
}
}
public
class
Ten {
-
int
val = 10;
-
//специальный тип перегрузочного операторного метода operator
-
public
static
explicit
operator
int
(Ten obj) {
-
return
obj.val;
-
}
}
class
Program {
-
public
static
int
Main() {
-
Five F =
new
Five();
-
Ten T =
new
Ten();
-
//теперь с объектами можно выполнять арифметические или другие действия
-
//нужно явно привести объект класса к нужному типу
-
int
res = (
int
)F + (
int
)T;
-
Console.WriteLine(res);
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
public
class
Five {
-
int
val = 5;
-
//специальный тип перегрузочного операторного метода operator
-
public
static
explicit
operator
int
(Five obj) {
-
return
obj.val;
-
}
}
public
class
Ten {
-
int
val = 10;
-
//специальный тип перегрузочного операторного метода operator
-
public
static
explicit
operator
int
(Ten obj) {
-
return
obj.val;
-
}
}
class
Program {
-
public
static
int
Main() {
-
Five F =
new
Five();
-
Ten T =
new
Ten();
-
//теперь с объектами можно выполнять арифметические или другие действия
-
//нужно явно привести объект класса к нужному типу
-
int
res = (
int
)F + (
int
)T;
-
Console.WriteLine(res);
-
Console.ReadKey();
-
return
0;
-
}
}
15