Явное преобразование своего класса в int - C#
Формулировка задачи:
Всем привет! Есть такой класс:
Служит для расчета позиции шашки в нардах. Нужно чтобы он явно преобразовывался в int. Временно заколхозил свойство под эти нужды
Студия вещает, что оператор as работает только с ссылочными типами.. Не могу придумать как это сделать..
Листинг программы
- public class Address
- {
- private int _Field;
- private int _position;
- private Chip chip;
- private int Field
- {
- get { return _Field; }
- set
- {
- _Field = value;
- if (this.chip == Chip.Black)
- {
- if (this._Field == 5) this._Field = 1;
- if (this._Field == 6) this._Field = 2;
- }
- }
- }
- private int position
- {
- get { return _position; }
- set
- {
- int temp = value - _position;
- if (temp> 6)
- {
- int tt = temp / 6;
- Field += tt;
- int t = temp % 6;
- _position += t;
- }
- else _position = value;
- }
- }
- public int Position { get { return _Field * 10 + _position; } }
- public static Address operator + (Address cur, int a)
- {
- cur.position += a;
- return cur;
- }
- public Address(Chip ChipAdr)
- {
- this.chip = ChipAdr;
- if (chip == Chip.White) { this._Field = 1; this._position = 1; }
- else { this._Field = 3; this._position = 1; }
- }
- }
Листинг программы
- public int Position { get { return _Field * 10 + _position; } }
Решение задачи: «Явное преобразование своего класса в int»
textual
Листинг программы
- public static explicit operator int(Address cur)
- {
- return cur._Field * 10 + cur._position;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д