ВУЗ:
Составители:
Рубрика:
56
Класс может содержать методы для осуществления операции
преобразования в другие типы данных или из них. Они реализуются с
помощью перегрузки специальных операторов.
Оператор преобразования к типу данных имеет вид:
operator имяТипа(Операнд); // имяТипа – имя оператора
Этот оператор не имеет возвращаемого типа, поскольку он совпадает с
именем оператора. Данная операция является унарной.
Операция преобразования может быть явной или неявной. Это
указывается с помощью ключевых слов explicit или implicit. Класс
может содержать только одно из этих двух преобразований. Например,
определим в классе Matrix неявное преобразование целого числа в
матрицу, результатом которого будет квадратная матрица, размер которой
задан этим числом.
// операция неявного преобразования целого числа в матрицу
public static implicit operator Matrix(int n)
{
Matrix m = new Matrix(n, n);
m.InputMatrix();
return m;
}
Вызов данного метода осуществляется так:
Matrix a = 5; // создание матрицы размера 5 х 5
Также определим в классе Matrix явное преобразование матрицы в
вещественное число, в результате которого будет возвращаться значение
определителя матрицы.
// операция преобразования матрицы в вещественное число -
// ее определитель
public static explicit operator double(Matrix m)
{
return m.Determinant();
}
Вызов данного метода осуществляется только при явном
преобразовании типов:
Класс может содержать методы для осуществления операции
преобразования в другие типы данных или из них. Они реализуются с
помощью перегрузки специальных операторов.
Оператор преобразования к типу данных имеет вид:
operator имяТипа(Операнд); // имяТипа – имя оператора
Этот оператор не имеет возвращаемого типа, поскольку он совпадает с
именем оператора. Данная операция является унарной.
Операция преобразования может быть явной или неявной. Это
указывается с помощью ключевых слов explicit или implicit. Класс
может содержать только одно из этих двух преобразований. Например,
определим в классе Matrix неявное преобразование целого числа в
матрицу, результатом которого будет квадратная матрица, размер которой
задан этим числом.
// операция неявного преобразования целого числа в матрицу
public static implicit operator Matrix(int n)
{
Matrix m = new Matrix(n, n);
m.InputMatrix();
return m;
}
Вызов данного метода осуществляется так:
Matrix a = 5; // создание матрицы размера 5 х 5
Также определим в классе Matrix явное преобразование матрицы в
вещественное число, в результате которого будет возвращаться значение
определителя матрицы.
// операция преобразования матрицы в вещественное число -
// ее определитель
public static explicit operator double(Matrix m)
{
return m.Determinant();
}
Вызов данного метода осуществляется только при явном
преобразовании типов:
56
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »
