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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> error CS1501: No overload for method 'AddInfo', Как исправить ошибку? 
V
    Опции темы
Mastkir
Дата 27.10.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте.

Понадобилось мне объявить структуру внутри класса-контейнера таких структур.
Пишу (здесь очень урезанная версия):

namespace XXX {

   public ref class InfoContainer{

      public:
         ref struct Info{
             Info(...){...} 
         };

      InfoContainer(){};
      void AddInfo(Info info){...};

   }
}
 // этот код написан на CLI.

Все скомпилировалось.  smile Хочу это все использовать. Пишу:

using XXX;

namespace YYY {

    public partial class MainFrame : Form{

        public MainFrame() 
        {
              InfoContainer info_container = new InfoContainer();
              InfoContainer.Info info = new InfoContainer.Info(...);
              info_container.AddInfo(info);
        }
    }
}// 
этот код написан на C#.


И на последнюю строчку( т.е. на info_container.AddInfo(info); )

Пишется error CS1501: No overload for method 'AddInfo'  smile 

ПочемУ?  smile  Как это исправлять?  На С++ такие вещи легко компилируются.
PM MAIL   Вверх
ivashkanet
Дата 27.10.2006, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



Цитата(Mastkir @  27.10.2006,  20:32 Найти цитируемый пост)
 void AddInfo(Info info){...};

Скорее всего, метод без модификатора объявляется как private 
P.S. В C# так, может и в CLI (это IL?) так
PM MAIL WWW ICQ   Вверх
archimed7592
  Дата 28.10.2006, 02:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

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



ivashkanet, он имел ввиду Managed C++ aka C++.NET

Mastkir, в managed c++ не совсем та же разница между class и struct, что и в c#
в c# class - ссылочый тип, struct - тип данных. в c# все поля по умолчанию private
в с++ class и struct отличаются тем, что по умолчанию поля в одних private, а в других public. за "ссылочность" отвечают слова ref и value. ключевое слово ref говорит, что у тебя ссылочный тип (обыкновенный класс), stuct - по умолчанию все поля public.
Код
namespace XXX {

   public ref class InfoContainer{

      public:
         ref struct Info{
             Info(...){...} 
         };

      InfoContainer(){};
      void AddInfo(Info ^info){...}; // всё будет работать, если передавать хендл на управляемую кучу - это же ссылочный объект

   }
}

то что тебе нужно - это value class\struct - аналог stuct из c#
Код
namespace XXX {

   public ref class InfoContainer{

      public:
         value struct Info{ //<<======= непараметризованный конструктор нельзя переопределить
             Info(...){...} 
         };

      InfoContainer(){};
      void AddInfo(Info info){...}; // всё будет работать и так

   }
}


Это сообщение отредактировал(а) archimed7592 - 28.10.2006, 03:02


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Mastkir
Дата 30.10.2006, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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




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

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


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

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


 




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


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

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