Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 12

Разобрать приведенную строку кода

02.01.2013, 22:44. Показов 735. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Встретил таково вот прохожего не на что непохожего)
C#
1
Object[] TempObject = (Object[])obj;
тут объявляется массив объектов типа Object, этот массив имеет имя TempObject, а это "(Object[])obj" что?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.01.2013, 22:44
Ответы с готовыми решениями:

Разобрать приведенную строку кода
Привет.. могли бы разжевать, что означает это выражение int max=x<y ? x : y; что означают символы ? и двоеточие

Разобрать приведенную строку кода
Что означает эта строка: public interface IBaseService<T> where T : class,IBase,new() {} Особенно мне непонятно то, что после...

Разобрать приведенную строку кода с вычислениями
pole.Text=(Convert.ToString(Math.Cos(Convert.ToDouble(pole.Text)))); Прокоментируйте как и что .зачем работает

5
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
02.01.2013, 22:47
Это попытка приведения ссылки какого-то неизвестного типа к типу Object[].
1
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
02.01.2013, 22:49
Тоже вижу такое первый раз) Спасибо за пример.
0
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 12
02.01.2013, 23:02  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Это попытка приведения ссылки какого-то неизвестного типа к типу Object[].
простите за твёрдолобость...
(Object[])obj
где тут ссылка?
и как вы поняли что тут описана ссылка?
неизвестная ссылка "obj" приводится к типу "Object[]"?

привожу кусок кода с этой строкой:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public static void CreateSocket(Object obj)
{ 
Object[] TempObject = (Object[])obj;
// IP-адрес сервера, для подключения
string HostName = (string)TempObject[0];
// Порт подключения
string Port = (string)TempObject[1];
bool ServerApp = (bool)TempObject[2];
 
// Разрешает DNS-имя узла или IP-адрес в экземпляр IPHostEntry.
ipHost = Dns.Resolve(HostName);
// Получаем из списка адресов первый (адресов может быть много)
ipAddr = ipHost.AddressList[0];
// Создаем конечную локальную точку подключения на каком-то порту
ipEndPoint = new IPEndPoint(ipAddr, int.Parse(Port));
 
if (!ServerApp)
{
try
{
// Создаем сокет на текущей машине
Client = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
while (true)
{
// Пытаемся подключиться к удаленной точке
Client.Connect(ipEndPoint);
if (Client.Connected)
IsConnected = true;
break;
}
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
02.01.2013, 23:15
где тут ссылка?
obj - это переменная, которая ссылается на некий объект.

как вы поняли что тут описана ссылка?
Предположил, что переменную, ссылающуюся на структуру, не будут называть obj.

C#
1
public static void CreateSocket(Object obj)
Здесь в метод передается переменная obj, имеющая тип Object.

C#
1
Object[] TempObject = (Object[])obj;
А здесь предполагается, что эта переменная ссылается на массив объектов и программист берет на себя риск, пытаясь привести ее к соответствующему типу.
Если переменная действительно ссылается на массив, то все норм, а если нет, то программа обрушится.
1
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 12
02.01.2013, 23:43  [ТС]
Спасибо огромное! Разобрался) Вот развёрнутый ответ для тех, кто будет сюда заглядывать)
Явные преобразования
Если преобразование не может быть выполнено без риска потери данных, для компилятора требуется, чтобы пользователь выполнил явное преобразование, которое называется приведением. Приведение является способом явно указать компилятору, что нужно сделать преобразование, и что известно, что может быть потеря данных. Для выполнения приведения заключите тип, в который производится приведение, в скобки перед преобразуемым значением или переменной. Следующая программа выполняет приведение типа double к типу int. Без приведения эта программа скомпилирована не будет.
C#

C#
1
2
3
4
5
6
7
8
9
10
11
12
class Test
{
    static void Main()
    {
        double x = 1234.7; //переменная "х" которая будет "приведена"
        int a;
        // Cast double to int.
        a = (int)x; //  <--- приведение переменной "х" типа "double" [double x] к типу "int" [(int)x]
        System.Console.WriteLine(a);
    }
}
// Output: 1234
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.01.2013, 23:43
Помогаю со студенческими работами здесь

Разобрать строку кода
Подскажите пожалуйста , не пойму строку : if (this.Last == rez_prov) На странице ...

Разобрать строку кода
увидел такую вот запись и никак не могу понять что же она значит... судя по использованию это некий аналог лямбды? ... = delegate { ......

Разобрать строку кода
Кто знает, может подсказать, что это за синтаксис и что он делает и из какой это темы? Просто проходил пример, и что-то не посмотрел на...

Многопоточность (по Шилдту) - разобрать строку кода
Здравствуйте! У меня вопрос: в чем смысл строки кода if(currentName != Thrd.Name) в методе Run() класса MyThread? Через конструктор класса...

Регулярное выражение - распарсить приведенную строку
Есть строка: &lt;a class=&quot;b-serp-item__title-link&quot; tabindex=&quot;2&quot;...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru