Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293

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

30.03.2014, 21:17. Показов 1900. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, уважаемые форумчане. При работе с делегатами столкнулся со следующей проблемой:
NullReferenceException не обработано
Ссылка на объект не указывает на экземпляр объекта.

Привожу мой код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    public class Товар
    {
        private Dictionary<string, Func<double, double>> Тов;
        public void Товары()
        {
            Тов = new Dictionary<string, Func<double, double>>
            {
                {"Молоко", x => x*30},
                {"Картофель", x => x*25},
                {"Масло", x => x*120},
            };
        }
 
        public double Товары (string t, double x)
        {
            if (!Тов.ContainsKey(t))
                throw new Exception("Такого товара нет в списке !");
            return Тов[t](x);
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
class Program
    {
        static void Main(string[] args)
        {
            Товар ttov = new Товар();
            Console.WriteLine(ttov.Товары("Картофель", 5));            
            Console.ReadKey();
        }
    }
Выдает ошибку в строке
C#
1
if (!Тов.ContainsKey(t))
Никак не могу понять, в чём ошибка. Заранее большое спасибо за помощь)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.03.2014, 21:17
Ответы с готовыми решениями:

Ссылка на объект не указывает на экземпляр объекта при работе с массивами
Доброго времени суток!Написал программу,но ругается, не понимаю почему:cry: Поясните что нужно сделать,пожалуйста!

Исключение "ссылка на объект не указывает на экземпляр объекта" при работе с XML
Вообще есть проблемка, выдаёт ошибку при компиляции: ссылка на объект не указывает на экземпляр объекта Вот сам код: if...

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

7
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
30.03.2014, 21:21
А кто за Вас будет вызывать метод?
C#
1
public void Товары()
Если хотите конструктор сделать, то тогда так:
C#
1
public Товар()
1
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
30.03.2014, 21:24  [ТС]
Цитата Сообщение от TheSpawn Посмотреть сообщение
Если хотите конструктор сделать, то тогда так:
public Товар()
Я с самого начала так и делал, но компилятор пишет, что метод должен иметь тип возвращаемого значения..
0
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
30.03.2014, 21:27
Компилируется и работает, что я сделал не так?
Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Товар ttov = new Товар();
            Console.WriteLine(ttov.Товары("Картофель", 5));
            Console.ReadKey();
        }
    }
 
    public class Товар
    {
        private Dictionary<string, Func<double, double>> Тов;
        public Товар()
        {
            Тов = new Dictionary<string, Func<double, double>>
            {
                {"Молоко", x => x*30},
                {"Картофель", x => x*25},
                {"Масло", x => x*120},
            };
        }
 
        public double Товары(string t, double x)
        {
            if (!Тов.ContainsKey(t))
                throw new Exception("Такого товара нет в списке !");
            return Тов[t](x);
        }
    }
}
1
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
30.03.2014, 21:29  [ТС]
Цитата Сообщение от TheSpawn Посмотреть сообщение
Компилируется и работает
Да, у меня тоже компилится и работает. Может, дело в том, что у меня всё это в разных проектах находится ?
0
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
30.03.2014, 21:32  [ТС]
P.S. Ссылка добавлена.
0
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
30.03.2014, 21:45
Лучший ответ Сообщение было отмечено Бедел как решение

Решение

Имя конструктора и имя класса должны совпадать.
public ТоварЫ...
1
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
30.03.2014, 21:45  [ТС]
TheSpawn, спасибо большое, всё из-за моей невнимательности)) Товар..Товары.. Надо было назвать как-то так, чтобы легко было различать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.03.2014, 21:45
Помогаю со студенческими работами здесь

Ссылка на объект не указывает на экземпляр объекта при отправке почты
Всем привет! Суть проблемы: Что делать?

Ссылка на объект не указывает на экземпляр объекта при вставке массива
Здравствуйте, многуважаемые форумчане! Я совсем недавно начала изучать С#, и возникла такая проблема: Нужно создать рваный массив,...

Ссылка на объект не указывает на экземпляр объекта при обращении к элементу массива
Весь код можно не читать, привел на всякий случай, ошибка возникает там где выделено жирным. Возникает если я ввожу несколько сиволов...

Ссылка на объект не указывает на экземпляр объекта при обращении к элементу массива
выдает ошыбку Ссылка на объект не указывает на экземпляр объекта. public string STRING; string keystr = &quot;Май Поэзия...

Ошибка при разборе XML. Ссылка на объект не указывает на экземпляр объекта
Добрый день! Столкнулась со следующей проблемой: разбираю xml сообщение следующего вида: &lt;settings&gt; - &lt;row&gt; ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
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 через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru