Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40

Почему не работает код с полями/свойствами?

09.07.2016, 21:09. Показов 2532. Ответов 58
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я изучаю программирование с самого начала. Изучаю по книге "C# для школьников. М.Дрейер.". Дошёл до полей (свойств) и я делаю всё, как показано в книге, но в VS у меня пишет, что я написал код с ошибками. Я не понимаю, где я ошибся. Вот код:
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
using System;
class PleaseSayUra
{ static void Main()
    {
        Console.WriteLine("Ура!");
        Console.ReadLine();
    }
}
 
class Animal
{
    static void myAnimal()
    {
 
        // №1. Объявление (Инициализация) переменных класса Animal. Для объявления сначала пишется класс переменной, а затем имя переменной. Завершается объявление знаком ";", сразу после её имени.
        Animal Cat;
        Animal Dog;
        Animal Bird;
 
        // №2. Создание переменной. После объявления переменных нужно создать эти переменные. Сначала пишется имя переменной, после ставим знак "=", пишем "new", пишем класс этой переменной, и завершаем создание знаками "();"
        Cat = new Animal();
        Dog = new Animal();
        Bird = new Animal();
 
        // №3. Поля. Свойства (Характеристики) переменных.
        string KindOfAnimal;
        string Name;
        string Color;
        int NumberOfLegs;
        int Height;
        int Length;
        bool HasTail;
        bool IsMammal;
        bool SpellingCorrect;
 
        Animal Boar;
        Boar = new Animal();
        Boar.KindOfAnimal = "Медведь";
        Boar.Name = "Миша";
        Boar.Color = "Коричневый";
        Boar.NumberOfLegs = 4;
        Boar.Height = 100;
        Boar.Length = 200;
        Boar.HasTail = true;
        Boar.IsMammal = true;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.07.2016, 21:09
Ответы с готовыми решениями:

Почему один и тот-же код в WindowsForms работает, а в Web не работает?
Здравствуйте, подскажите почему один и тот-же код в WindowsForms работает, а в Web не работает. Код WindowsForms: namespace...

Простейший код работает в MS IE, почему не работает в Mozilla, FireFox?
Приветствую. Вот собственно код: <html> <head></head> <body> <input type="button" value="set 1" ...

Почему не работает код на других компьютерах (на моем работает)?
вот задание: построить ф-ю: на вход поступают 2 строки, на выходе 1 строка, по следующим правилам: в 1 строке удваиваются все гласные,...

58
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 02:42  [ТС]
Студворк — интернет-сервис помощи студентам
Ну, тогда получается, что совокупность классов и метода, который отвечает за вход в программу, является стартовой точкой. А остальное просто инструкции.
0
Заблокирован
10.07.2016, 02:46
Цитата Сообщение от Espiond82 Посмотреть сообщение
Ну, тогда получается, что совокупность классов и метода, который отвечает за вход в программу, является стартовой точкой.
Вход в программу - да, это какой-либо статический метод какого-либо класса.

Добавлено через 1 минуту
Цитата Сообщение от Espiond82 Посмотреть сообщение
А остальное просто инструкции.
Эммм... Остальное - это тоже методы, классы, переменные и т. д. Все то же самое. Просто эти методы не используются в качестве стартовых.
0
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 02:47  [ТС]
nimazzzy, а когда void не является статическим? и какие ещё бывают разновидности?

Добавлено через 46 секунд
Цитата Сообщение от nimazzzy Посмотреть сообщение
Эммм... Остальное - это тоже методы, классы, переменные и т. д. Все то же самое. Просто эти методы не используются в качестве стартовых.
Я это понимаю, но просто так назвал "инструкции"
0
Заблокирован
10.07.2016, 02:47
Цитата Сообщение от Espiond82 Посмотреть сообщение
а когда void не является статическим?
Вопрос не понятен, перечитай книгу. void к статике отношения не имеет. Поэтому, я не тролль, но метод с типом возвращаемого значения void не статический ровно тогда, когда он не статический. Серьезно.
Цитата Сообщение от Espiond82 Посмотреть сообщение
и какие ещё бывают разновидности?
Разновидности чего?
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 02:50  [ТС]
nimazzzy, ну я так и думал ))))))))

Добавлено через 2 минуты
Цитата Сообщение от nimazzzy Посмотреть сообщение
и какие ещё бывают разновидности?
есть static void,А ещё что можно поставить перед воидом? Но я забегаю вперёд я только дошёл до методов. Поэтому не буду тут глупые вопросы задавать. Я сейчас спать отправлюсь, а то у меня уже почти 3 ночи. Программирование затянуло
0
Заблокирован
10.07.2016, 02:56
Цитата Сообщение от Espiond82 Посмотреть сообщение
есть static void,А ещё что можно поставить перед воидом?
static
public
internal
private
protected
new
virtual
abstract
override
sealed
partial
unsafe
extern
async
1
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
10.07.2016, 10:23
Посмотри ещё уроки, многое поймёшь: https://www.youtube.com/watch?... TC&index=1
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 23:57  [ТС]
Мне не понятен ещё один момент. Скажите пожалуйста, если я создаю новый класс, в нём я объявляю новую переменную, то зачем создавать её снова? Расскажите пожалуйста, что за что отвечает. Почему без создания класса, в методе Main нельзя создать класс Animal? Но, кажется, это я понимаю. Дальше, почему при создании пустого класса Animal, в другом классе и методе можно создать переменную Dog? Dog объект да? Почему в самом классе Animal можно объявить переменную Dog, но нельзя её создать. Объясните пожалуйста разницу и или зависимость друг от друга объявление переменнйо в классе от её создания. Спасибо
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Learn_Lesson3
{
    class Program
    {
        static void Main()
        {
        }
    }
 
    class Person
    {
        // Поля
        public string firstname;
        public string lastname;
 
        // Метод
        public void ShowFullName()
        {
            Console.WriteLine("Имя: " + firstname + " " + "Фамилия: " + lastname);
        }
 
        Person Ivan;
        Ivan = new Person(); // Ошибка
        Ivan.firstname = "Иван"; // Ошибка
        Ivan.lastname = "Васильевич"; // Ошибка
        Ivan.ShowFullName(); // Ошибка
    }
}
Добавлено через 21 минуту
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Learn_Lesson3
{
    class Program
    {
        static void Main()
        {
            Animal Dog;
            Dog = new Animal();
        }
    }
 
    class Animal
    {
        Animal Dog;
        Dog = new Animal(); // Ошибка
    }
 
}
Добавлено через 22 минуты
Не нужен сенсей

Добавлено через 28 минут
Мне
0
Эксперт .NET
 Аватар для Usaga
14780 / 9554 / 1366
Регистрация: 21.01.2016
Сообщений: 36,019
11.07.2016, 06:13
Espiond82, в теле класса ты можешь располагать только поля, свойства, методы, а так же вложенные классы. У полей могут быть инициализаторы, т.е. ты можешь сделать так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
class SomeClass
{
    //dog - поле, его можно иницализировать сразу
    Animal dog = new Animal();
 
    //А можно и так
    Person person = new Person
    {
        FirstName = "Vasiliy",
        LastName = "Pupkin",
        Age = 10
    };
}
А вот вещи вида:
C#
1
2
3
4
5
Person Ivan;
Ivan = new Person();
Ivan.firstname = "Иван";
Ivan.lastname = "Васильевич";
Ivan.ShowFullName();
Это уже полноценный блок кода, который можно располагать только в теле метода и ни где больше.

Т.е. есть инициализаторы (в виде одной строки Animal dog = new Animel(); или в виде блока Animal dog = new Animal{Name = "Шарик", Age = 95}, которые можно располагать в теле класса и есть код, который должен быть только в методе.

Кстати, зачем в классе Animal создаётся объект этого же класса? Это такая попытка создания инициализировать сам объект класса?)))
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
11.07.2016, 17:55  [ТС]
То есть Animal Dog в классе SomeClass будет работать, даже, если нигде класс Animal не создавать?
Цитата Сообщение от Usaga Посмотреть сообщение
Кстати, зачем в классе Animal создаётся объект этого же класса? Это такая попытка создания инициализировать сам объект класса?)))
Да.

Добавлено через 9 минут
На моём этапе развития главное понимать, что и где располагается и что за что отвечает. Иначе я не смогу понять, что из себя представляет программирование и как им пользоваться.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
11.07.2016, 18:25
Espiond82,
Вообще не считаю правильным начать изучать программирование с C#.
Все-таки объектно-ориентированное программирование (ООП) требует некоторой подготовки.
Изучение синтаксиса, базовых операторов языка, реализация несложных алгоритмов на изучаемом языке совершенно не требуют объектно-ориентированного подхода. Наоборот, ООП здесь даже мешает.
Лучше начать с процедурного языка, например, Си.
Или же можно начать учить C#, пользуясь по возможности процедурной концепцией. При этом необходимость применять ООП появится сама собой при достижении определенного уровня как в знаниях, умениях, так и в сложности программ.
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
11.07.2016, 18:49  [ТС]
Даценд, спасибо, но, как мне кажется, на первых пара мне всё понятно. Так как я представляю собой "чистый лист", то я, увидев первый раз код программы, не понимаю, что и где находится и что к чему. Я взял самую простую книгу для C# для школьников и в ней по началу всё понятно. Единственное, что я бы добавил в неё, так это полный код ко всем примерам, прямо в самой книге, чтобы ученик видел изменения.
0
Эксперт .NET
 Аватар для Usaga
14780 / 9554 / 1366
Регистрация: 21.01.2016
Сообщений: 36,019
11.07.2016, 18:59
Цитата Сообщение от Espiond82 Посмотреть сообщение
На моём этапе развития главное понимать, что и где располагается и что за что отвечает.
Это всё разжёвывается в учебниках.

Вот это:
Цитата Сообщение от Espiond82 Посмотреть сообщение
Да.
подразумевает, что ты учебник если и открывал, то только, чтобы на картинки посмотреть. Или учебник - дрянь. Без обид .

Тут есть тема, где ты сможешь выбрать нормальный учебник. Только изучай материал внимательно, ибо поспешишь - форумчан рассмешишь .
0
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
11.07.2016, 19:01  [ТС]
В общем, если получится, то нет ничего страшного.

Добавлено через 2 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
подразумевает, что ты учебник если и открывал, то только, чтобы на картинки посмотреть. Или учебник - дрянь. Без обид .
Да я не обижаюсь на такое. В учебнике я как раз и понял, что такое классы, но даже, когда я делал так, как показано в учебнике и на картинках, у меня возникали ошибки, после которых я и обращался сюда. Учебник называется "C# для школьников. Учебное пособие. 2010. М.Дрейер"
0
Эксперт .NET
 Аватар для Usaga
14780 / 9554 / 1366
Регистрация: 21.01.2016
Сообщений: 36,019
11.07.2016, 19:05
Ну тут либо в учебнике примеры с ошибками (такое бывает), либо ты не внимательно переписывал код из книги. Посмотри другой учебник. Этот старый и, скорее всего, слишком куцый.
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
11.07.2016, 20:15  [ТС]
Usaga, просто в самом его начале автор просит скачать архив с примерами с сайта. Но тот сайт больше не работает. Наверно весь код был там.

Добавлено через 2 минуты
Учебников у меня скачано на 4.55Гб.

Добавлено через 39 минут
А вы можете мне рассказать об основных понятиях, что такое программа? А то в разных учебниках начало у всех разное. Кто-то с переменных начинает, кто-то с классов. Вообще про оболочку, в которой создаётся программа. Насколько я понял, то главным с программном коде считается класс с методом Main(). Остальное является вспомогательным. Другие классы могут включать в себя разные методы, поля и свойства, которые могут тоже выполнять какой-то код. Но всё равно этот код должен как-то быть проявлен в главном методе Main() (Ну вы поняли). Меня интересуют разновидности классов и для чего они, разновидности, нужны. Вообще какие программы бывают? Посоветуйте книгу, в котором есть действительно правильное начало для того, чтобы понять само программирование. Ну, или язык.
0
Эксперт .NET
 Аватар для Usaga
14780 / 9554 / 1366
Регистрация: 21.01.2016
Сообщений: 36,019
12.07.2016, 05:08
Espiond82, по самому языку и платформе .NET ремонедую почитать в этой книге. Про ООП можно посмотреть небольшую статью на википедии и, если надо, пойти дальше по ссылкам. Увидеть (прибилзительно) как ООП может пригодиться в реальности можно в этой замечательной книге.

После этого данные вопросы должны сами собой разрешиться. Я надеюсь.
1
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
12.07.2016, 08:59
Espiond82, вот очень полезный ресурс. В своё время очень много полезного для себя нашёл. Да и до сих-пор помогает.

Добавлено через 2 минуты
Книга для обучения новичка хороша, если её читать с самого начала выполняя все примеры и пробуя что-то из прочитанного самому.
Если же, как автор сходу забуриться в дебри в голове образуется каша и даже элементарные вещи не могут встать на своё место в картине мира.
0
 Аватар для UseMuse
154 / 154 / 60
Регистрация: 11.01.2016
Сообщений: 1,329
12.07.2016, 14:06
Espiond82, nimazzzy,
Нормально всё в книге написано.
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
using System;
/*
 
Из текста книги:
 
Свойства объектов
Если бы я попросил вас перечислить несколько свойств животных, то список мог быть следующим:
‰ Вид животного (Kind of animal).
‰ Рост (Height).
‰ Длина (Length).
‰ Количество лап (Number of legs).
‰ Окрас (Color).
‰ Наличие хвоста (Has a tail).
‰ Является ли млекопитающим (Is a mammal).
При рассмотрении свойств этих животных вы можете присвоить значения каждому из них:
‰ Kind of animal = «Cat» («Кот»).
‰ Height = 50 cm (большой котяра!).
‰ Length = 110 cm (это рысь скорее, а не домашняя кошка!).
‰ Number of legs = 4.
‰ Color = «Black» (черный).
‰ Has tail = true (истина).
‰ Is mammal = true (истина).
 
    В C# эти свойства называются полями. (Слово «свойства» используется для несколько иной
цели, но здесь мы не станем вдаваться в подробности.)
 
 И про пространство имён написано:
 
 Для логического объединения классов
одной тематики рекомендуется
помещать их в одно пространство
имен. Имя пространства должно иметь
содержательный смысл.
 
    namespace Charles.SchoolUtilities
{
    class Animal
    {
    }
}
*/
 
namespace Charles.SchoolUtilities
{
    class PleaseSayUra
    {
        static void Main()
        {
            Bird b = new Bird();
            b.kindOfAnimal = "Орел";
 
            //b.isMammal = false;// Попытка обращения к защищенному полю
            /*
            Доступ к свойствам зависит от того, где появляется приведенный выше
текст: если из метода класса Bird, то доступ к защищенному (protected) свойству
isMammal разрешен, поскольку класс Bird — потомок класса Animal; если же из метода клас-
са клиента, то это свойство будет недоступно. */
 
            b.featherColor = "темно - желтый";
            Console.WriteLine("Ура!");
            Console.ReadLine();
        }
    }
    class Animal
    {
        // Поля класса 
        public string kindOfAnimal;
        public string name;
        public int numberOfLegs;
        public int height;
        public int length;
        public string color;
        bool hasTail;
        protected bool isMammal;
        private bool spellingCorrect;
    }
    // Класс “Bird” — наследник класса “Animal”
    /*
     «Я определяю новый класс Bird, но он должен ав-
    томатически наследовать все свойства класса Animal». Иными словами, класс Bird является про-
    изводным от класса Animal.
    */
    class Bird : Animal
    {
        public string featherColor;
 
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.07.2016, 14:06

Не работает код js, почему ? Код внутри
Короче есть форма и js файлик с функциями, ф-я при клике проверяет написано ли там 'Введите имя', если да то удаляет текст, так вот она...

Почему не работает код?
Код скопировал с книги, но почему-то не работает: function User(properties) { for (var i in properties) { ...

Почему код не работает?
#include <ctime> #include "std_lib_facilities.h" int main() { vector <int> aaa; srand(time(0)); int i= 1+rand() % 9; int...

Почему не работает код?
private void Form1_Load(object sender, EventArgs e) { int n=19; StreamReader z = new...

Почему не работает код?
Почему не работает? тык ошибок никаких не показывает, хз в чем дело <!DOCTYPE> <html> <head> <meta...


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

Или воспользуйтесь поиском по форуму:
59
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru