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

Ссылка на объект не указывает на экземпляр объекта

17.02.2015, 00:00. Показов 1932. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ох, сразу скажу, что темы которые выдает поиск я перелистал

Код
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.Ports;
 
namespace RoboCtrl {
    class RoboCP {
        private SerialPort RoboPort;
 
        public int baudRate = 9600;
        public Parity parity = Parity.None;
        public int dataBits = 8;
        public StopBits stopBits = StopBits.One;
 
 
 
        // Получить массив доступных портов
        public string[] getPorts() {
            // foreach(string portname in RoboCtrl.getPorts()) { comboBox1.Items.Add(portname); }
            return SerialPort.GetPortNames();
        }
 
 
        // Открыть порт 
        public bool openPort(string portName){
           if(this.RoboPort.IsOpen) { return true; }
            try {
                RoboPort = new SerialPort(portName, this.baudRate, this.parity, this.dataBits, this.stopBits);
                RoboPort.Open();
            } catch { return false; }
            return true;
        }
 
        // Отправить команду
        public void cmd(string cmdname) {
            if(!this.RoboPort.IsOpen) { return; }
            byte[] data = Encoding.UTF8.GetBytes(cmdname);
            this.RoboPort.Write(data, 0, data.Length);
        }
 
 
 
        // Закрыть порт
        public void closePort() {
            if(this.RoboPort.IsOpen) {
                this.RoboPort.Close();
            }
        }
 
    }
}
Ругается на this.RoboPort.IsOpen и this.RoboPort.Write
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2015, 00:00
Ответы с готовыми решениями:

Ссылка на объект не указывает на экземпляр объекта
Добрый день! Столкнулся с ошибкой "Ссылка на объект не указывает на экземпляр объекта". Почитал на форумах, нашел множество...

Ссылка на объект не указывает на экземпляр объекта.
namespace lab2_2 { struct Student { public string nameSt; public int Group; public int UspevSt;...

Ссылка на объект не указывает на экземпляр объекта
using System; class Game { public static Cell field = new Cell; static void Main() { Area.CreateArea(ref field); ...

7
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.02.2015, 00:04
Fangod, ни одной ошибки в этом коде у меня нет. А в рантайме да, значит порт null.
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
17.02.2015, 00:04
Fangod, значит на момент использования RoboPort он не проинициализирован. покажите код как вы используете этот класс
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
17.02.2015, 00:04
Fangod, у Вас RoboPort неигициализирован, т.е. не указывает ни на какой объект. Т.е. Вы объявили переменную типа SerialPort, но она ни на что не указывает, нет в ней объекта.
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
17.02.2015, 00:05
Лучший ответ Сообщение было отмечено Fangod как решение

Решение

Fangod, нашел, исправьте метод на
C#
1
2
3
4
5
6
7
8
9
10
public bool openPort(string portName){
           if(RoboPort !=null &&
               this.RoboPort.IsOpen)  return true; 
 
            try {
                RoboPort = new SerialPort(portName, this.baudRate, this.parity, this.dataBits, this.stopBits);
                RoboPort.Open();
            } catch { return false; }
            return true;
        }
ибо вы проверяли открыт ли порт, но объект порта не был инициализирован, от сюда и ошибка
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.02.2015, 00:05
Metall_Version, да и так видно. Он вызывает openPort, где обращение к свойству SerialPort'а происходит до его создания, естественно вылетает эксепшн.
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
17.02.2015, 00:07
Fangod, и да не называйте приват члены с большой буквы. принято с маленькой roboPort
1
9 / 9 / 0
Регистрация: 07.10.2011
Сообщений: 187
17.02.2015, 07:13  [ТС]
Да, наверно отправляю в openPort пустую строку (хотя был уверен, что нет), щас проверю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2015, 07:13
Помогаю со студенческими работами здесь

Ссылка на объект не указывает на экземпляр объекта
мин 20 сижу и не пойму почему при выводе вылазит ошибка "Ссылка на объект не указывает на экземпляр объекта." using System; using...

Ссылка на объект указывает на экземпляр объекта
Суть такая, есть в контроллере точка. состоящая из семи значений, я копирую предыдущую точку и прибавляю к ней цифры из textBox потом...

Ссылка на объект не указывает на экземпляр объекта
Ссылка на объект не указывает на экземпляр объекта Вот в этих файлах Строка 488 http://pastebin.com/p8MJjEZ8 Строка 21 using...

Ссылка на объект не указывает на экземпляр объекта
Здравствуйте! При написании кода у меня возникла проблема, а исправить не получается. В строке "readSize =...

Ссылка на объект не указывает на экземпляр объекта
Само задание: Организовать метод собирающий деньги у группы людей. Организовать метод который принимает коэффициент дохода и возвращает...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru