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

System.NullReferenceException

09.05.2018, 16:21. Показов 1275. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.дан код регистрации пользователя.вот отрывок из кода:
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
static class UserManager
    {
        private static User[] _users = new User[10];
 
         
        static public int Register(User user)
        {
            for(int i = 0; i < _users.Length; i++)
            {
                _users[i] = new User();
            }
 
            if (user.Username == null && user.Password == null)
            {
                return -1;
            }
 
            for (int i = 0; i < _users.Length; i++)
            {
                if (_users[i].Username == user.Username)
                {
                    return -2;
                }
            }
 
            for (int i = 0; i < _users.Length; i++)
            {
                if (_users[i].Username == null && _users[i].Password == null)
                {
                    _users[i].Username = user.Username;
                    _users[i].Password = user.Password;
                    return 0;
                }
 
            }
 
            return -3; 
        }
на массиве _users[i].Username _users[i].Password выдает ошибку-- System.NullReferenceException.
Я прочитал что при создании вот этого массива --- private static User[] _users = new User[10] выделяется память только под массив и надо и под элементы тоже. я создал цикл ---
C#
1
2
3
4
 for(int i = 0; i < _users.Length; i++)
            {
                _users[i] = new User();
            }
но что то не идет(( подскажите пожалуйста как надо правильно
Миниатюры
System.NullReferenceException  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.05.2018, 16:21
Ответы с готовыми решениями:

System.NullReferenceException
Помогите разобраться. Вот кусок кода. Найти все коробки, поступившие от заданного поставщика (задано имя поставщика). static public void...

System.NullReferenceException
public static byte Encrypt(byte data, string pass) { byte key = Encoding.UTF8.GetBytes(pass); int...

System.NullReferenceException ошибка в массиве
функция GetLinkInf if (site == &quot;Content&quot;) { foreach (var nd in nodes) { ...

3
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
09.05.2018, 17:18
Лучший ответ Сообщение было отмечено Гиоргий как решение

Решение

Гиоргий, попробуйте следующий код:
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
static class UserManager
{
    private static User[] _users = new User[10];
 
    static public int Register(User user)
    {
        if (user == null || user.Username == null || user.Password == null)
        {
            return -1;
        }
 
        for (int i = 0; i < _users.Length; i++)
        {
            if (_users[i] == null) break;
                        
            if (_users[i].Username == user.Username)
                return -2;
        }
 
        for (int i = 0; i < _users.Length; i++)
        {
            if (_users[i] == null)
            {
                _users[i] = user;
 
                return 0;
            }
        }
 
        return -3;
    }
Ну а вообще, следовало бы использовать список (List) вместо массива, так как он расширяемый и всегда ясно сколько в нём элементов (свойство Count), таким образом не нужно перед каждой вставкой элемента убеждаться в наличии свободного места. Кроме того, вместо числовых кодов лучше возвращать элементы перечислений либо, в случае ошибок, генерировать исключения, так как в будущем будет трудно разбираться, что такое -1, -2 и -3.
1
50 / 4 / 0
Регистрация: 21.02.2018
Сообщений: 153
09.05.2018, 17:28  [ТС]
Цитата Сообщение от VladPVS Посмотреть сообщение
Ну а вообще, следовало бы использовать список (List) вместо массива
Мы еще не проходили List, и не могу его использовать
0
50 / 4 / 0
Регистрация: 21.02.2018
Сообщений: 153
12.05.2018, 12:55  [ТС]
Цитата Сообщение от VladPVS Посмотреть сообщение
C#
1
2
3
4
5
6
for (int i = 0; i < _users.Length; i++)
 {
 if (_users[i] == null) break;
if (_users[i].Username == user.Username)
return -2;
 }
я вот тут с break не догадался сделать. спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2018, 12:55
Помогаю со студенческими работами здесь

Почему вылетает System.NullReferenceException?
Привет народ ) есть класс using MaxAll.Facebooks; using MaxAll.View; using System.Threading; using System.Windows; using...

Освобождение ресурсов и ошибка System.NullReferenceException
Я написал класс: public class Database Который в веду сложности создания, имеет в конструкторе ряд эксепшенов типа: throw new...

System.NullReferenceException при добавлении в AVLTree
using System; using System.Collections.Generic; namespace MyCollections.Generic //Класс ALV-дерева поиска. public class...

An unhandled exception of type 'System.NullReferenceException' occurred
Почему такое вылазит при простейшем коде? Что я делаю не так? string PAs = null; for (int a = 1; a != 10; a++) PAs = &quot;XXX&quot;;

Почему System.NullReferenceException в массиве обьектов класса?
кто может подсказать , а то я что то не пойму почему выдает исключение : System.NullReferenceException в student.Name (Studet class) ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru