![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
У меня есть класс, который хранит массив векторов (1).
У класса есть функция которая должна возвращать массив других классов (2), которые должны состоять их трех векторов массива (1) На C++ я бы просто сделал поля другого класса ссылками и ссылался на нужные мне вектора массива (1) А как такое в C# реализовать? Вектора же у нас только размерные, а не ссылочные. Надеюсь понятно описал. Заранее спасибо ![]() PS У меня есть массив вектором: Vector[] - это ссылоный тип (?) а мне нужно что бы это был значимый чтобы передать его в функцию:
Как делать? Это сообщение отредактировал(а) Elfet - 25.6.2007, 17:36 |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
в общем, ничего не ясно
![]() Добавлено через 1 минуту и 6 секунд .. приведи код на C++, может так проще будет. Добавлено через 6 минут и 21 секунду ааа, вспомнил, у тебя Vector это структура. тебе зачем требуется передавать ссылки на него, а не сами значения? -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Не, вектор у меня размерный - я его сам написал
![]() Короче что делать если я хочу ссылаться на размерный тип? ![]()
|
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
либо описать Vector как класс, тогда все проблемы сразу отпадут, либо исппоьзовать unsafe код и работать с указателями. тебе всё таки почему надо именно ссылки? чтобы хранилась ссылка на актуальные данные, а не их копия? или чтобы ускорить работу, не делая лишнее копирование?
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
Kvazilol |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 7.12.2006 Репутация: нет Всего: нет |
по умолчанию в C# значимые типы передаются по значению, а тебе надо передать в функцию ссылочку на вектор. значит нужно написать перед вектором ref
Добавлено через 1 минуту и 54 секунды
ну конечно Это сообщение отредактировал(а) Kvazilol - 25.6.2007, 18:29 |
||||||
|
|||||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Ну например если без ссылок делать то изменяя массив этих вектором с помощью одного метода из их класса, то придеться пересоздавать те другие классы.
|
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
Elfet, либо как-то измени логику работы, либо переконвертируй Vector в класс. указатели - зло, придётся держать массивы в pinned состоянии, что очень плохо.
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Будем логику улучшать
![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |