Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неявное преобразование типов, преобразование типа класса в double 
:(
    Опции темы
HackSign
Дата 8.1.2018, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 5.2.2007

Репутация: нет
Всего: нет



Здравствуйте. Возникает ошибка при сборке, которая говорит о неявном преобразовании типов. 
привожу код теста, где возникает ошибка. 
 
Код

 [Test]
        public void ConvertToDouble()
        {
            double v = new Rational(1, 2);
            Assert.AreEqual(0.5, v, 1e-7);
        }

Ниже представлен класс
Код

public class Rational 
    { 
     
     private int numerator;
     private int denominator; 
     private double num; 
     private double dom; 
     
     public double Num 
     {
         get{return num;}
         set{num = value;}
     }
     public double Dom 
     {
         get{return dom;}
         set{dom = value;}
     }
     
     public int Numerator
      { 
         get{return numerator;} 
         set{numerator = value;}
         
      }
     public int Denominator 
     { 
         get{return denominator;}
         set{denominator = value;}
     }  
     
  
     public Rational(int numerator, int denominator)
     { 
         this.numerator = numerator; 
         this.denominator = (denominator > 0) ? denominator:1;
     }  
     //принимаем одно значение
     public Rational(int numerator) 
     {  
         this.numerator = numerator; 
     } 
         
     
         
      public bool IsNan 
      {
        
        get{
           
           if(denominator==0)    return true; 
           else return false;
           } 
       
      }  
      
      public static Rational operator +(Rational a, Rational b)
      { 
       Rational result = new Rational(1,1); 
       result.denominator = a.denominator*b.denominator; 
       result.numerator = result.denominator/a.numerator + result.denominator/b.numerator; 
       return result; 
      }
      public static Rational operator -(Rational a, Rational b) 
      { 
       Rational result = new Rational(1,1); 
       result.denominator = a.denominator*b.denominator; 
       result.numerator = result.denominator/a.numerator - result.denominator/b.numerator; 
       return result; 
      }
      public static Rational operator / (Rational a, Rational b) 
      { 
       Rational result = new Rational(1,1); 
       result.numerator = a.numerator * b.denominator; 
       result.denominator = a.denominator * b.numerator; 
       return result; 
      } 
      public static Rational operator * (Rational a, Rational b) 
      { 
       Rational result = new Rational(1,1); 
       result.numerator = a.numerator*b.numerator;
       result.denominator = a.denominator*b.denominator; 
       return result; 
      }
     
      
    }


Будьте так любезны подсказать, как сделать так, чтобы устранить ошибку? 
PM MAIL   Вверх
HackSign
Дата 9.1.2018, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 5.2.2007

Репутация: нет
Всего: нет



Разобрался сам. 
Код

public static implicit operator double(Rational a) 
     { 
         return a.numerator%a.denominator;  
     }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0950 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.