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

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

09.07.2016, 21:09. Показов 2553. Ответов 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, 01:51  [ТС]
Студворк — интернет-сервис помощи студентам
Только так надо делать классы и применять их или можно как-то по другому?

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;
class TestProgram
{
    static void Main()
    {
        Person Ivan;
        Ivan = new Person();
        Ivan.FirstName = "Иван";
        Ivan.LastName = "Владимирович";
        Ivan.age = 16;
 
        Console.WriteLine("{0} {1} {2}лет", Ivan.FirstName, Ivan.LastName, Ivan.age);
 
        Console.ReadKey();
    }
}
 
class Person
{
    public string FirstName;
    public string LastName;
    public int age;
 
    static void Persons()
    {
        Person Ivan;
        Person Dmitriy;
        Person Sergey;
 
        Ivan = new Person();
        Dmitriy = new Person();
        Sergey = new Person();
    }
}
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
10.07.2016, 01:52
Цитата Сообщение от Espiond82 Посмотреть сообщение
Только так надо делать классы и применять их или можно как-то по другому?
Я уже на это ответил, смотри прошлые сообщения.
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 01:52  [ТС]
А можно сделать так, чтобы при вводе переменной age, слово "лет" вводилось автоматически, сразу после её объявления? Ну, чтобы Ivan.age уже включало в себя слово "лет".
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
10.07.2016, 01:55
Сомнительная идея. Но если прям надо, то нужно создать свойство для чтения, которое будет получатиь возраст и склеивать его со словом "лет"
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 01:57  [ТС]
Casper-SC, а разве таких переменных нет? Чтобы и число и строка были? Мне кажется, что это вполне возможно реализовать
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
10.07.2016, 01:58
Espiond82,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    class Person
    {
        private int _age;
 
        public Person()
        {
        }
 
        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }
 
        public string AgeText
        {
            get { return _age + " лет"; }
        }
    }
0
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 02:11  [ТС]
Я не знаю, как это выглядит на языке C#, но в голове появилась мысль, что объявляем эту переменную, задаём ей число, а в момент использования, сразу после неё будет строка "лет". И всё это в одной переменной, а не в том месте, где надо выводить результат.

Добавлено через 3 минуты
По книге скажу, что прямого кода там не было и я только-только подошёл к методам "void". А до этого в ней говорилось про классы и свойства. Вот я и подумал, что я что-то пропустил, чтобы спокойно переходить к новым знаниям. А оказывается без методов нельзя. Попробую пока ничего сам не писать.

Добавлено через 4 минуты
В ней сказано, что надо создать класс, внутри которого мы объявляем и создаём новые переменные. Затем создаём свойства для этих переменных. И вот тут я столкнулся с тем, что не знаю, как задать значения свойствам. И главное - вывести на консоль результат. Я не понимаю, сам принцип построения создания классов. Обязательно надо объявлять и создавать в ней переменные? И почему внутри класса нельзя вывести результат, а надо обращаться к первому методу?

Добавлено через 1 минуту
А я кажется понял. Я просто ищу самое главное в программировании С чего всё начинается.

Добавлено через 2 минуты
А вот ещё момент. В предыдущем примере в первом методе void(Main) я заново создавал переменную Ivan. Скажите пожалуйста, почему я не могу без этого выбрать эту переменную, так как она у меня уже создана в классе Persons?
0
Заблокирован
10.07.2016, 02:14
Цитата Сообщение от Espiond82 Посмотреть сообщение
Обязательно надо объявлять и создавать в ней переменные?
В ней это в классе? Зависит от того, как ты представляешь себе область, с которой работаешь.
Цитата Сообщение от Espiond82 Посмотреть сообщение
И почему внутри класса нельзя вывести результат, а надо обращаться к первому методу?
Потому что переменные - это просто данные. Что делать с данными определяет код. Код располагается в методах. Что такое "внутри класса" - непонятно, что такое "первый метод" - тоже.

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

Добавлено через 46 секунд
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
class TestProgram
{
    static void Main()
    {
        Person Ivan;
        Ivan = new Person();
        Ivan.FirstName = "Иван";
        Ivan.LastName = "Владимирович";
        Ivan.age = 16;
 
        Console.WriteLine("{0} {1} {2}лет", Ivan.FirstName, Ivan.LastName, Ivan.age);
 
        Console.ReadKey();
    }
}
 
class Person
{
    public string FirstName;
    public string LastName;
    public int age;
}
Добавлено через 1 минуту
Цитата Сообщение от nimazzzy Посмотреть сообщение
Сообщение от Espiond82
А вот ещё момент. В предыдущем примере в первом методе void(Main) я заново создавал переменную Ivan. Скажите пожалуйста, почему я не могу без этого выбрать эту переменную, так как она у меня уже создана в классе Persons?
Читай про область видимости переменных.
Я присваивал public перед переменными Ivan и другими, но это было ошибкой.
0
Заблокирован
10.07.2016, 02:18
Цитата Сообщение от Espiond82 Посмотреть сообщение
То есть я могу и не создавать новые переменные класса, а сразу создавать их в главном методе?
Вообще запутал в конец. Что за новые переменные класса?
Экземпляры класса ты можешь создавать где угодно, хоть в главном методе, хоть не в главном.

Добавлено через 2 минуты
Цитата Сообщение от Espiond82 Посмотреть сообщение
Я присваивал public перед переменными Ivan и другими, но это было ошибкой.
И это правильно. Почитай про модификаторы доступа и где их можно, а где нельзя использовать.
0
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 02:18  [ТС]
Спасибо. Наверное глупо задавать вопросы не доучившись
0
Заблокирован
10.07.2016, 02:23
Если посмотреть, например, сюда: https://msdn.microsoft.com/ru-... 73121.aspx
Написано:
Все типы и члены типов имеют уровень доступности, который определяет возможность их использования из другого кода в сборке разработчика или других сборках.
А теперь:
Цитата Сообщение от Espiond82 Посмотреть сообщение
Я присваивал public перед переменными Ivan и другими, но это было ошибкой.
переменная Ivan не являлась типом, либо членом типа. Переменная Ivan являлась локальной переменной в статическом методе.
0
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 02:25  [ТС]
Только такая конструкция программы является правильной?

C#
1
2
3
4
5
6
7
8
9
10
using System; // Первое
 
class TestProgram // Второе
{
    static void Main() // Третье
    {
        Console.WriteLine("Hello!"); // Четвёртое
        Console.ReadKey();
    }
}
0
Заблокирован
10.07.2016, 02:27
Я сойду с ума
Правильной для чего? Метод Main должен быть статическим. Код может быть любым другим. Правильной с точки зрения чего??? Я не понимаю...я ничего не понимаю...
0
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 02:31  [ТС]
nimazzzy, с точки зрения минимума. Я пытаюсь сформулировать для себя, что такое программа в коде. С чего она начинается и что ей необходимо для того, чтобы код выполнился. Я ищу начало и конец всей программы и все её компоненты. В данном примере я показал, что мне важно выводить любой результат на консоль. Для меня это конечная точка программы. А стартовая точка using System, потом обязательно нужно создать класс, обязательно в классе нужно создать метод (а перед методом можно что-то делать?), а внутри метода писать действия.
0
Заблокирован
10.07.2016, 02:35
Цитата Сообщение от Espiond82 Посмотреть сообщение
nimazzzy, с точки зрения минимума.
C#
1
2
3
4
5
6
class Program
{
    static void Main()
    {
    }
}
Цитата Сообщение от Espiond82 Посмотреть сообщение
А стартовая точка using System
Это не стартовая точка программы, это просто удобство для обращения к сущностям в пространстве имен. Стартовая точка программы - это тот метод, который будет вызван при ее запуске. Этот метод по умолчанию обзывается Main, но может быть задан компилятору любым другим именем. Вот без using System;
C#
1
2
3
4
5
6
7
    class Program
    {
        static void Main(string[] args)
        {
            System.Console.WriteLine("hello");
        }
    }
Нет больше стартовой точки?
А так?
C#
1
2
3
4
5
6
7
8
9
using static System.Console;
 
class Program
{
    static void Main(string[] args)
    {
        WriteLine("hello");
    }
}
Не мешай все в кучу. Половину того, что ты пишешь, я просто не могу понять, каша-мала, мысли смешались.
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 02:37  [ТС]
Цитата Сообщение от nimazzzy Посмотреть сообщение
Нет больше стартовой точки?
Спасибо. Есть, она называется class. Без него ничего нельзя выходит.
0
Заблокирован
10.07.2016, 02:39
Цитата Сообщение от Espiond82 Посмотреть сообщение
Есть, она называется class.
Нет, это не стартовая точка. Ты путаешь понятия, все смешал в кучу и вышла каша-малаша.
0
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
10.07.2016, 02:41  [ТС]
А мне всё понятно Просто мои знания не так обширны, как твои. Вот ты и не понимаешь. Я, на данном этапе развития, пытаюсь найти твёрдый пол, на который можно опираться и в котором я буду уверен, чтобы писать код. Но, пока я лучше пойду дочитаю книгу.
0
Заблокирован
10.07.2016, 02:41
Первая строчка кода в файле - это ничто. И никакой роли нигде не играет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.07.2016, 02:41

Не работает код 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...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
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) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru