Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 3 / 2
Регистрация: 22.12.2016
Сообщений: 144

Использование Var в TRY

20.07.2017, 12:32. Показов 2270. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Использую заголовок секции объявления переменных(var) users вместе с операторами try/catch
Так вот поимки сообщения должен выполняться код2, но в код2 - не видит users т.к try скрывает его.
Так вот , как сделать что бы users в код2 - был виден?
Если использовать dynamic перед try(прим. dynamic users
То вылетает ошибка(на месте кода users.Select(user => (ulong)user.Id), пик1.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
     try
            {
              var users =
                vkApi.Friends.Get(new VkNet.Model.RequestParams.FriendsGetParams
                {
                    UserId = 0,
                });
            }
            catch (VkNet.Exception.UserAuthorizationFailException)
            {
                MessageBox.Show("токен на другой iD");
                goto linkKostb; // костыль
            }

C#
1
chatID = vkApi.Messages.CreateChat(users.Select(user => (ulong)user.Id), ChatNameBox.Text + temp1);
Миниатюры
Использование Var в TRY  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.07.2017, 12:32
Ответы с готовыми решениями:

Использование var
Доброго времени суток. Хочу создать список типа стринг вот такой конструкцией var images = new List<string>();, но ругается на var...

Использование var или уход от строгой типизации
Алоха! Стал программить на C# совсем недавно, на компе стоит VS 2010 + Resharper. Так вот статистический анализатор кода в Resharper...

Как сцепить строки? Например <? $var='Ура!'; $var=$var+' Еще раз...'; echo $var; ?>
Вот пример: &lt;? $var='Ура!'; $var=$var+' Еще раз...'; echo $var; ?&gt; Выводит Ура!0

22
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
20.07.2017, 12:37
а зачем Вам динамик? если Ваш запрос имеет свой тип ReadOnlyCollection<User>, его и используйте в глобальном объявлении.
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
20.07.2017, 12:38
mastercard, что по твоему делает var?

Добавлено через 43 секунды
SeIZVeIZ, эх, опередил ...
1
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
20.07.2017, 12:43
mastercard, и на будущее, если Вам сложно даётся в понимании используйте var только в тех случаях когда справа для Вас будет чёткое определение какой тип в итоге будет, если вы явно об этом не знаете то не поленитесь, посмотрите у метода что возвращает и давайте этот тип Вашей переменной. Иначе будут и дальше возникать вот такие вопросы.

Не по теме:

OwenGlendower, я не специально :)

1
1 / 3 / 2
Регистрация: 22.12.2016
Сообщений: 144
20.07.2017, 13:01  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
его и используйте в глобальном объявлении.
Не совсем понятно как использовать тип ReadOnlyCollection в данном случае, ранее о нём даже и не слышал.
Цитата Сообщение от OwenGlendower Посмотреть сообщение
что по твоему делает var?
В данном примере получает лист(или коллекцию) UserId
И если не ошибаюсь, это переменная без типа, т.е выделяется максимально кол-во памяти под что-либо .
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
20.07.2017, 13:04
Цитата Сообщение от mastercard Посмотреть сообщение
В данном примере получает лист(или коллекцию) UserId
Нет. var ничего не получает. И мой вопрос не о данном примере, а вообще о назначении ключевого слова var.

Добавлено через 48 секунд

Не по теме:

Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
я не специально :)
Я понимаю :)

1
1 / 3 / 2
Регистрация: 22.12.2016
Сообщений: 144
20.07.2017, 13:07  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Нет. var ничего не получает. И мой вопрос не о данном примере, а вообще о назначении ключевого слова var.
update
Цитата Сообщение от mastercard Посмотреть сообщение
И если не ошибаюсь, это переменная без типа, т.е выделяется максимально кол-во памяти под что-либо .
hotfix*
An implicitly typed local variable is strongly typed just as if you had declared the type yourself, but the compiler determines the type
Компилятор выделяет определенное кол-во памяти под что-либо*.
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
20.07.2017, 13:10
Цитата Сообщение от mastercard Посмотреть сообщение
Не совсем понятно как использовать тип ReadOnlyCollection в данном случае, ранее о нём даже и не слышал.
В документации VkNet который вы используете есть описание метода, который вы используете, и его возвращающее значение. А использовать, что-то на подобии:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ReadOnlyCollection<User> users; // объявим
try
            {
              users = // заполняем
                vkApi.Friends.Get(new VkNet.Model.RequestParams.FriendsGetParams
                {
                    UserId = 0,
                });
            }
            catch (VkNet.Exception.UserAuthorizationFailException)
            {
                MessageBox.Show("токен на другой iD");
                goto linkKostb; // костыль
            }
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
20.07.2017, 13:12
Цитата Сообщение от mastercard Посмотреть сообщение
это переменная без типа
То есть "без типа"? C# статически типизированный язык и у любой переменной есть какой-то тип.

Цитата Сообщение от mastercard Посмотреть сообщение
т.е выделяется максимально кол-во памяти под что-либо .
И как именно это максимальное количество памяти определяется? Чем, например, отличаются по использованию памяти следующие переменные?
C#
1
2
int x = 1;
var y = 1;
Или следующие:
C#
1
2
string a = "aaa";
var b = "aaa";
1
1 / 3 / 2
Регистрация: 22.12.2016
Сообщений: 144
20.07.2017, 13:16  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
То есть "без типа"? C# статически типизированный язык и у любой переменной есть какой-то тип.
Я там(в предыдущем сообщении) добавил hotfix*

Не по теме:


An implicitly typed local variable is strongly typed just as if you had declared the type yourself, but the compiler determines the type
Компилятор выделяет определенное кол-во памяти под что-либо*.


Компилятор выделяет определенное кол-во памяти и определяет тип переменной*.

Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
А использовать, что-то на подобии:
Никогда ранее не пользовался таким типом "ReadOnlyCollection<XXX>"
При использовании вылетает ошибка "Не удалось найти тип или имя пространства имен "ReadOnlyCollection"
Я должен использовать какой-то специальный using?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
20.07.2017, 13:21
Цитата Сообщение от mastercard Посмотреть сообщение
Я там(в предыдущем сообщении) добавил hotfix*
1) Прекрати добавлять новый текст в сообщения с помощью редактирования. Это сильно сбивает с толку. Редактирование следует использовать для небольших исправлений не меняющих суть.

2) Меня не интересуют определения из книг или документации. Я хотел увидеть твое личное понимание.
1
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
20.07.2017, 13:28
Лучший ответ Сообщение было отмечено mastercard как решение

Решение

Цитата Сообщение от mastercard Посмотреть сообщение
Никогда ранее не пользовался таким типом "ReadOnlyCollection<XXX>"
При использовании вылетает ошибка "Не удалось найти тип или имя пространства имен "ReadOnlyCollection"
Я должен использовать какой-то специальный using?
ReadOnlyCollection Предоставляет базовый класс для универсальной коллекции, доступной только для чтения.
Пространство имен: System.Collections.ObjectModel
Описание используемого Вами метода
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
20.07.2017, 13:37
Цитата Сообщение от mastercard Посмотреть сообщение
Никогда ранее не пользовался таким типом "ReadOnlyCollection<XXX>"
При использовании вылетает ошибка "Не удалось найти тип или имя пространства имен "ReadOnlyCollection"
Я должен использовать какой-то специальный using?
В дополнение к ответу SeIZVeIZ. Ответы на подобные простые вопросы нужно уметь получать самостоятельно - список способов.

Цитата Сообщение от mastercard Посмотреть сообщение
Компилятор выделяет определенное кол-во памяти и определяет тип переменной*.
Ок. Влияет ли var на область видимости переменной?
0
1 / 3 / 2
Регистрация: 22.12.2016
Сообщений: 144
20.07.2017, 13:47  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
В дополнение к ответу SeIZVeIZ. Ответы на подобные простые вопросы нужно уметь получать самостоятельно - список способов.
Гуглил, но получил не правильный список пространств имён(и не понял какой именно использовать, решил переспросить), если бы использовал ваш метод(поиск только по MSDN), всё решил бы без чьей либо помощи, возьму на заметку,виноват.
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Ок. Влияет ли var на область видимости переменной?
Не совсем понял вопроса, отвечу частично на обум : если объявить 2-е переменные в одной области видимости к примеру в
C#
1
2
3
4
5
void func()
{
var x = 2;
int x = 1;
}
то произойдет ошибка , т.к компилятор(транслятор*) уже определил тип переменной x и объявил её уже как int x = 2 ;
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
20.07.2017, 14:00
mastercard, Читать до полного понимания написанного. Лучше хотя бы раз 10.
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
20.07.2017, 14:02
Цитата Сообщение от mastercard Посмотреть сообщение
Не совсем понял вопроса, отвечу частично на обум
Ответ в самом деле наобум. Вопрос был немного про другое. В первом сообщении ты спрашивал почему var переменная объявленная внутри блока try не видна внутри блока catch. Отсюда и вопрос - влияет ли var на область видимости переменной?
0
1 / 3 / 2
Регистрация: 22.12.2016
Сообщений: 144
20.07.2017, 14:47  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Ответ в самом деле наобум. Вопрос был немного про другое. В первом сообщении ты спрашивал почему var переменная объявленная внутри блока try не видна внутри блока catch. Отсюда и вопрос - влияет ли var на область видимости переменной?
Эм, нет , никак не влияет. На область видимости влиял try (я пытался это и донести)
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
20.07.2017, 14:51
mastercard, ок. Мы разобрались что var это неявно типизированная переменная и что var не влияет на облась видимости. Где и как тогда нужно объявить переменную users чтобы она была видна и в try и в следующим за ним кодом?
0
1 / 3 / 2
Регистрация: 22.12.2016
Сообщений: 144
20.07.2017, 14:52  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Где и как тогда нужно объявить переменную users чтобы она была видна и в try и в следующем за ним кодом?
Как глобальная переменная, или просто перед try.
0
20.07.2017, 14:55

Не по теме:

OwenGlendower, у меня препод в годы учёбы также на проге допытывался ответов от людей :) многие не справлялись)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.07.2017, 14:55
Помогаю со студенческими работами здесь

Скрипты перестали различать $_POST['var'], $_SESSION['var'] и просто $var
После переезда на новый хостинг с php 5.2 на php 5.3 обнаружил глюк. Почему то скрипты перестали различать $_POST, $_SESSION и просто...

/var/lock и /var/run, как будто нет таких директорий
Доброго времени суток! Система CentOS 5.3. На системе настроен nat на POSTROUTING некоторых ip адресов. Работа системы была...

Почему Мандрива не захотела копировать диск в /var/ftp и /var?
На пробу я сделал два раздела /var /var/ftp Оба побольше 5 гектаров, но мандрива не стала предлагать скопировать диск. Почему? Я...

Можно ли выполнить условие $var===false, если переменная $var другого типа (не boolean)?
Сокет-сервер, использующий скрипт на PHP под Linux, разрывает соединение со стороны сервера, если для данных $input, полученных с клиента,...

[?] Вопрос по адресации. В каком случае [var] =var=
Есть код .data t dw 10 .code main: mov ax, ; или t ..


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru