Явное преобразование своего класса в int - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет! Есть такой класс:
Листинг программы
  1. public class Address
  2. {
  3. private int _Field;
  4. private int _position;
  5. private Chip chip;
  6. private int Field
  7. {
  8. get { return _Field; }
  9. set
  10. {
  11. _Field = value;
  12. if (this.chip == Chip.Black)
  13. {
  14. if (this._Field == 5) this._Field = 1;
  15. if (this._Field == 6) this._Field = 2;
  16. }
  17. }
  18. }
  19. private int position
  20. {
  21. get { return _position; }
  22. set
  23. {
  24. int temp = value - _position;
  25. if (temp> 6)
  26. {
  27. int tt = temp / 6;
  28. Field += tt;
  29. int t = temp % 6;
  30. _position += t;
  31. }
  32. else _position = value;
  33. }
  34. }
  35. public int Position { get { return _Field * 10 + _position; } }
  36. public static Address operator + (Address cur, int a)
  37. {
  38. cur.position += a;
  39. return cur;
  40. }
  41. public Address(Chip ChipAdr)
  42. {
  43. this.chip = ChipAdr;
  44. if (chip == Chip.White) { this._Field = 1; this._position = 1; }
  45. else { this._Field = 3; this._position = 1; }
  46. }
  47. }
Служит для расчета позиции шашки в нардах. Нужно чтобы он явно преобразовывался в int. Временно заколхозил свойство под эти нужды
Листинг программы
  1. public int Position { get { return _Field * 10 + _position; } }
Студия вещает, что оператор as работает только с ссылочными типами.. Не могу придумать как это сделать..

Решение задачи: «Явное преобразование своего класса в int»

textual
Листинг программы
  1. public static explicit operator int(Address cur)
  2.         {
  3.             return cur._Field * 10 + cur._position;
  4.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы