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

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

12.03.2018, 11:02. Показов 878. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что не так??
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
static void Main(string[] args)
        {
                        
            BookLinkedList b1 = new BookLinkedList();
            
            Console.WriteLine("_____________________________________________");
            Console.WriteLine("Cause AddFirst....");
            Console.WriteLine("_____________________________________________");
            b1.AddFirst();
 
            Console.WriteLine("_____________________________________________");
            Console.WriteLine("Cause AddLast....");
            Console.WriteLine("_____________________________________________");
            b1.AddLast();
 
            Console.WriteLine("_____________________________________________");
            Console.WriteLine("Cause AddAfter....");
            Console.WriteLine("_____________________________________________");
            b1.AddAfter();
 
            Console.Clear();
 
            for (int i = 0; i < 3; i++)
            {
                b1[i].Print(); //ИСКЛЮЧЕНИЕ!!!
            }
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _27_LinkedList_
{
    class BookLinkedList : IEnumerable
    {
        private LinkedList<Book> books = new LinkedList<Book>() ;
        private Book head;
        private Book tail;
        private int count;
 
        public BookLinkedList()
        {
            this.head = null;
            this.tail = null;
            this.count = 0;
        }
 
        public int Count
        {
            get { return this.count; }
        }
 
        public void AddFirst()
        {
            Book item = new Book();
            item.Input();
            books.AddFirst(item);
            Console.WriteLine("_____________________________________________");
            Console.WriteLine("Work out AddFirst....");
            Console.WriteLine("_____________________________________________");
        }
        public void AddLast()
        {
            Book item = new Book();
            item.Input();
            books.AddLast(item);
            Console.WriteLine("_____________________________________________");
            Console.WriteLine("Work out AddLast....");
            Console.WriteLine("_____________________________________________");
        }
        public void AddAfter()
        {
            Book item = new Book();
            item.Input();
            books.AddAfter(books.Last,item);
            Console.WriteLine("_____________________________________________");
            Console.WriteLine("Work out AddAfter(Last)....");
            Console.WriteLine("_____________________________________________");
        }
        public void RemoveFirst()
        {
            books.RemoveFirst();
            Console.WriteLine("_____________________________________________");
            Console.WriteLine("Work out RemoveFirst....");
            Console.WriteLine("_____________________________________________");
        }
        public void RemoveLast()
        {
            books.RemoveLast();
            Console.WriteLine("_____________________________________________");
            Console.WriteLine("Work out RemoveLast....");
            Console.WriteLine("_____________________________________________");
        }
        public Book this[int index]
        {
            get
            {
                //if (index >= count || index < 0)
                //{
                //    throw new ArgumentOutOfRangeException("Out of range!");
                //}
                Book currentNode = this.head;
                for (int i = 0; i < index; i++)
                {
                    currentNode = currentNode.Next;
                }
                return currentNode;
            }
            set
            {
                //if (index >= count || index < 0)
                //{
                //    throw new ArgumentOutOfRangeException("Out of range!");
                //}
                Book currentNode = this.head;
                for (int i = 0; i < index; i++)
                {
                    currentNode = currentNode.Next;
                }
                currentNode.Element = value;
            }
        }
        public void Display(BookLinkedList words)
        {
            
            foreach (Book word in words)
            {
                Console.Write(word + " ");
            }
            Console.WriteLine();
            Console.WriteLine();
        }
        IEnumerator IEnumerable.GetEnumerator()
        {
            return books.GetEnumerator();
        }
    }
}
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _27_LinkedList_ 
{
    class Book
    {
        public string Author { get; set; }
        public string Name { get; set; }
        public double Year { get; set; }
        private object element;
        private Book next;
        private Book previous;
 
        public Book(object element)
        {
            this.element = element;
            this.next = null;
            this.previous = null;
        }
 
        public Book(object element, Book prevNode)
        {
            this.element = element;
            this.previous = prevNode;
            prevNode.next = this;
        }
 
        public object Element
        {
            get { return this.element; }
            set { this.element = value; }
        }
 
        public Book Next
        {
            get { return this.next; }
            set { this.next = value; }
        }
 
        public Book Previous
        {
            get { return this.previous; }
            set { this.previous = value; }
        }
        public Book()
        {
            Author = null;
            Name = null;
            Year = 0;
        }
        public Book(string author, string name, double year)
        {
            Author = author;
            Name = name;
            Year = year;
        }
        public void Input()
        {
            Console.WriteLine("Добавление новой книги: ");
            Console.Write("Автор: ");
            string author = Console.ReadLine();
            Console.Write("Название книги: ");
            string name = Console.ReadLine();
            Console.Write("Год издания: ");
            double year = Convert.ToDouble(Console.ReadLine());
            Author = author;
            Name = name;
            Year = year;
        }
        public void Print()
        {
            Console.WriteLine("Автор: {0} Название книги: {1} Год издания: {2}", Author, Name, Year);
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.03.2018, 11:02
Ответы с готовыми решениями:

Ссылка на объект не указывает на экземпляр объекта
Не могу записать данные из dataGridView пишет &quot;Ссылка на объект не указывает на экземпляр объекта.&quot; using System; using...

Ссылка на объект не указывает на экземпляр объекта
Привет Всем! Помогите пожалуйста найти ошибку for (int i = 0; i &lt; dataGridView2.RowCount; i++) dataGridView2.Value = ...

Ссылка на объект не указывает на экземпляр объекта
Всем привет ребята) В ходе выполнения цикла многомерного массива возникла ошибка &quot;System.NullReferenceException&quot; При том, что...

5
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.03.2018, 11:15
Цитата Сообщение от Ирен Посмотреть сообщение
Что не так?
Вы при добавлении используете внутренний связный список books, а в индексаторе почему-то начинаете использовать поля head и tail, которые нигде не инициализируются.
Либо выбросите внутренний список, либо поля.
0
0 / 4 / 0
Регистрация: 24.11.2015
Сообщений: 19
12.03.2018, 12:02  [ТС]
И как это будет выглядеть?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.03.2018, 13:51
Цитата Сообщение от Ирен Посмотреть сообщение
И как это будет выглядеть?
Код не ваш?

Сначала определитесь как вы хотите реализовать список: через внутренний список или самостоятельно через head и tail.
0
0 / 4 / 0
Регистрация: 24.11.2015
Сообщений: 19
13.03.2018, 10:11  [ТС]
Код мой, но саму индексацию брала на просторах интернета. Через внутренний список нужно)
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.03.2018, 10:18
Цитата Сообщение от Ирен Посмотреть сообщение
Через внутренний список нужно
Значит удаляйте всю самодельную реализацию связного списка из классов BookLinkedList и Book и работайте только с переменной books.
В индексаторах делайте то же самое, что сейчас, но используя методы класса LinkedList.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.03.2018, 10:18
Помогаю со студенческими работами здесь

Ссылка на объект не указывает на экземпляр объекта
Доброго времени суток, форумчане! Перешёл на VS 2017, раньше работал в VS 2015. Создал новый проект, чтобы перенести свой старый. Всё...

Ссылка на объект не указывает на экземпляр объекта
строка где появляется ошибка dbDataSet.Licenz.FindByIdLic(id).Delete(); Остальной код класса public partial class Form1 : Form ...

Ссылка на объект не указывает на экземпляр объекта
Здравствуйте!Проблема вот в чем. Перешел я c ListBox на ListView.Все изменил, все робит,но в некоторых местах выдает ошибку при отладке. ...

Ссылка на объект не указывает на экземпляр объекта
при нажатии на кнопку выдает ошибку Ссылка на объект не указывает на экземпляр объекта. ошибка в строке 222 learn = x; не могу...

Ссылка на объект не указывает на экземпляр объекта
Налепил вот такой код foreach (TabPage page in tabControl1.TabPages) // переходим по вcем страницам TabControl { ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru