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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приведение типов 
:(
    Опции темы
Real
Дата 30.3.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: -1



Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication8
{
    class Massiv:IComparable   
    {
        int array;
        public Massiv(int _array)
        {
            array = _array;
        }
     

      
        int IComparable.CompareTo(object rightobj)
        {
            if(!(rightobj is Massiv))
                throw new ArgumentException("+++++");
            Massiv objMassiv=(Massiv)rightobj;
            return CompareTo(objMassiv);
        }
        public int CompareTo(Massiv rightobj)
        {
            return array.CompareTo(rightobj.array);
        }

        public static bool operator <(Massiv leftobj, Massiv rightobj)
        {
            return leftobj.CompareTo(rightobj) < 0;
        }
        public static bool operator <=(Massiv leftobj, Massiv rightobj)
        {
            return leftobj.CompareTo(rightobj) <= 0;
        }
        public static bool operator >(Massiv leftobj, Massiv rightobj)
        {
            return leftobj.CompareTo(rightobj) > 0;
        }
        public static bool operator >=(Massiv leftobj, Massiv rightobj)
        {
            return leftobj.CompareTo(rightobj) >= 0;
        }
              


        
    }
    class Program
    {
        static void Main(string[] args)
        {
            Massiv[] massiv = new Massiv[10];
            Random ramdom = new Random();
            for (int i = 0; i < 10; i++)
            {
                massiv[i] = (ConsoleApplication8.Massiv)ramdom.Next(100);
            }
            for (int i = 0; i < 10; i++)
            {
                Console.Write(massiv[i] + " ");
            }
           
            Console.WriteLine();
            


        }
    }
}


Код

 massiv[i] = (ConsoleApplication8.Massiv)ramdom.Next(100);


Код

Cannot convert type 'int' to 'ConsoleApplication8.Massiv'    

Почиму приведение типов не действует?

Это сообщение отредактировал(а) Real - 30.3.2008, 13:14
PM   Вверх
Optimus
Дата 30.3.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Для того чтобы приведение типов работала, нужно написать оператор преобразования
Код

public static explicit operator Massiv(int value)
{
  return new Massiv(value);
}


И не забудьте переопределить ToString()
Код

public override string ToString()
{
  return array.ToString();
}

--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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