|
4 / 4 / 0
Регистрация: 28.05.2011
Сообщений: 84
|
||||||
Как присвоить переменной объект из цикла foreach23.06.2012, 00:25. Показов 8550. Ответов 15
Метки нет (Все метки)
на сам код особенно внимание не обращайте. суть трабла - не могу присвоить переменной объект из цикла foreach
получаю сообщение, что "Use of unassigned local variable 'DPanel' " блин.. не пойму в чем дело ![]() в отладчике видно, что DockPanel p не пустая.
0
|
||||||
| 23.06.2012, 00:25 | |
|
Ответы с готовыми решениями:
15
Изменение переменной цикла foreach Присвоить объект переменной можно ли глобально присвоить объект переменной? |
|
311 / 249 / 44
Регистрация: 06.12.2010
Сообщений: 527
|
|||||||||||
| 23.06.2012, 00:28 | |||||||||||
|
Потому что у Вас объявлена переменная, но ей не присвоено значение.
У Вас так:
0
|
|||||||||||
|
267 / 257 / 43
Регистрация: 18.03.2012
Сообщений: 506
|
|
| 23.06.2012, 00:37 | |
|
Use of unassigned local variable - ошибка компилятора. Если вы не можете скомпилировать проект, при чем тут отладчик?
0
|
|
| 23.06.2012, 00:55 | |
|
ты не весь код показал. твоя переменная DPanel получает значение только если хотя бы один раз x is TabItem, иначе ей не присваивается никакое значение. а ты где-то в коде, который остался за кадром, пытаешься эту переменную использовать (уж не знаю как, посмотри сам).
0
|
|
|
4 / 4 / 0
Регистрация: 28.05.2011
Сообщений: 84
|
||||||||
| 23.06.2012, 18:29 [ТС] | ||||||||
сорри я не весь код привел. если закомментировать последнюю строку , то ошибки нет. если раскомментировать , то Error-Use of unassigned local variable 'DPanel' при том, что в строке DPanel = p; мы передаем ссылке реальный объект. ОН действительно присваивается в процессе выполнения программы. а вот на этапе компиляции ошибка ![]() Добавлено через 1 минуту Добавлено через 1 минуту
0
|
||||||||
|
267 / 257 / 43
Регистрация: 18.03.2012
Сообщений: 506
|
||||||
| 23.06.2012, 21:38 | ||||||
|
Компилятор не считает переменную инициализированной если она инициализируется (простите за тавтологию) только в некоторых случаях (что вполне логично). То есть, если !x is TabItem или !t.Header.Equals("test panel!"), переменной не будет присвоено значение и вы не сможете ею пользоваться.
Ссылка, при объявлении, не считается инициализированной. Не надо убирать
1
|
||||||
|
4 / 4 / 0
Регистрация: 28.05.2011
Сообщений: 84
|
|||
| 24.06.2012, 01:16 [ТС] | |||
|
спасибо за ответ! Добавлено через 1 минуту у меня там без вариантов, в коллекции обязательно есть TabItem ... но компилятор об этом не знает )))
0
|
|||
|
Master of Orion
|
|
| 24.06.2012, 12:36 | |
|
Кстати, еще вопрос про foreach: не знаю, может я тупой или что, но допустим мне надо найти в коллекции определенное значение, я могу сделать 2-3 вложенных for по старинке, могу запустить foreach, и я вынужден пользоваться первым случаем, потому что тогда я не могу получить индексы того элемента, который мне нужен (то есть мне не просто значение нужно, по значению я как раз хочу найти индекс элемента, у которого это значение). Может там есть какая-то встроенная функция? А то получается довольно ограниченное применение: только для копирования и чтения, и то не всех параметров. Например, если я хочу скопировать значения массив (не стандартной процедурой), то мне нужно все равно писать циклы по i,j и копировать, потому что массиву они нужны, а не только само значение..
0
|
|
|
4 / 4 / 0
Регистрация: 28.05.2011
Сообщений: 84
|
||||||||||||
| 24.06.2012, 12:49 [ТС] | ||||||||||||
)в общем виде :
но ваащет есть еще и метод indexof, да и сам индекс часто не нужен, а нужен объект из коллекции , а его можно и без получения индекса использовать.
0
|
||||||||||||
|
267 / 257 / 43
Регистрация: 18.03.2012
Сообщений: 506
|
|||||||||||||||
| 24.06.2012, 13:04 | |||||||||||||||
T First<T>(this IEnumerable<T>, Func<T, bool>), например. ![]() Не по теме: Пожалуйста, склоняйте слова и делайте предложения меньшего объема:wall:
0
|
|||||||||||||||
|
Master of Orion
|
||||||
| 24.06.2012, 14:38 | ||||||
|
Lasur, Хорошо. Предположим у меня есть трехмерный массив. Мне нужно каждый его элемент преобразовать по определенному алгоритму и впихнуть в массив той же размерности, но с другими значениями. То есть что-то вроде
0
|
||||||
|
267 / 257 / 43
Регистрация: 18.03.2012
Сообщений: 506
|
||||||
| 24.06.2012, 15:30 | ||||||
|
Psilon, могу предложить вам "извращение" через LINQ. Метод Create3dArray можно использовать во всех подобных случаях.
0
|
||||||
|
Master of Orion
|
|
| 24.06.2012, 15:56 | |
|
Lasur, с LINQ вообще не работал. Так что можно считать, что без for тут не обойтись (все-таки 3 вложенных for легче написать, чем такой код). Но таки с LINQ надо поразбираться. Что посоветуете почитать, чтобы иметь представление? А то большинство книг заканчивается на обработке исключений и делегатах.
0
|
|
|
267 / 257 / 43
Регистрация: 18.03.2012
Сообщений: 506
|
||||||||||
| 24.06.2012, 17:05 | ||||||||||
Дальнейшее изучение можно продолжить самостоятельно решая различные задачи (придумывать самому, искать на форуме и т.д.), просматривая и разбирая примеры из интернета: 1) 7 tricks to simplify your programs with LINQ 2) 101 LINQ Samples 3) Описание LINQ , читая MSDN. На сайте [книги]C# in Depth есть детальное описание интерфейса итераторов. Кстати, многие утверждают, что в этой самой С# in Depth отличное описание LINQ, да и сама книга чудесная. Я лично, ее пока не прочитал) Где то натыкался на очень интересное решение некой мат задачи в "одну строку", но к сожалению, задачу забыл, а ссылку посеял). С другой стороны, интересных "LINQ идей" в интернете полно. Добавлено через 19 минут ![]() Можно просто в одну строку реализовать и все три for, написав соответствующий метод, да и работать он будет в разы быстрее. Так что мой код выше абсолютно бесполезен в вашей задаче.
1
|
||||||||||
| 24.06.2012, 17:05 | |
|
Помогаю со студенческими работами здесь
16
Как присвоить имя переменной равное аргументу другой переменной? Как переменной описанной в программе присвоить значение переменной в Conditional Compilation Arguments?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|