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

CS0116 из-за public

14.01.2023, 17:09. Показов 584. Ответов 7

Студворк — интернет-сервис помощи студентам
Приветствую!

Недавно решил изучить С# и столкнулся с такой проблемой: добавление модификатора public (равно как и private) при первом вводе переменной вызывает ошибку CS0116. А без public все спокойно работает и запускается. Вот код:

C#
1
2
3
4
//CS0116 Пространство имен не может напрямую включать в себя такие элементы, как методы или операторы
private int? chislo = (Convert.ToInt32(Console.ReadLine()) * 2 - 12) / 4;
//CS0103 Имя "chislo" не существует в текущем контексте.
Console.WriteLine("Загаданное число: " + chislo.ToString());
Как следствие, при следующем упоминании переменной мне выдают ошибку CS103, мол, такой переменной не знаем. Что делать? Так ли нужен этот public? Понимаю, что кодификаторы доступности нужны, но как быть, не знаю.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2023, 17:09
Ответы с готовыми решениями:

Ошибка компилятора CS0116 и замечания
Здравствуйте! Помогите пожалуйста с кодом. Я не понимаю в чем ошибка и почему некоторые строчки подчеркиваются. using Messanger;...

Как скрестить ежа с енотом class MyClass : public QGraphicsProxyWidget, public QWidget ?
Я уже столько наплясался с бубном во круг это графикс сцены, никак не могу определиться с лучшим вариантом для её айтима, который...

Make sure class name exists, is public, and has an empty constructor that is public
Здравствуйте, подскажите пожалуйста, в чем ошибка? Я нашел информацию, что тот класс где возникает эта ошибка, лучше сделать static . Вот...

7
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
14.01.2023, 17:18
Цитата Сообщение от leguushka Посмотреть сообщение
Так ли нужен этот public?
Они придуманы не просто так. Это тебе надо понять что и где следует объявлять, тем более когда сама среда тебе говорит что не так.
0
0 / 0 / 0
Регистрация: 14.01.2023
Сообщений: 4
14.01.2023, 17:21  [ТС]
Тебе перечеркнутость этих слов ни о чем не говорит?
0
628 / 392 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
14.01.2023, 17:21
Цитата Сообщение от leguushka Посмотреть сообщение
Что делать?
вы зачем в пространстве имен определяете переменную? Покажите весь код
0
0 / 0 / 0
Регистрация: 14.01.2023
Сообщений: 4
14.01.2023, 17:23  [ТС]
Я решил, что это сократит мне код. И ведь сократило! Пока я не ввел public, и код не перестал работать...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Diagnostics;
 
public string? name= Console.ReadLine();
Console.WriteLine($"Привет, {name}!");
Console.WriteLine("Загадай число от 1 до 100. Нажми Enter, когда загадаешь.");
Console.ReadLine();
Console.WriteLine("Умножь на 4. Нажми Enter.");
Console.ReadLine();
Console.WriteLine("Прибавь 17. Нажми Enter.");
Console.ReadLine();
Console.WriteLine("Вычти 5. Нажми Enter.");
Console.ReadLine();
Console.WriteLine("Раздели на 2. Нажми Enter.");
Console.ReadLine();
Console.Write("Скажи получившееся число: ");
private int? chislo = (Convert.ToInt32(Console.ReadLine()) * 2 - 12) / 4;
Console.WriteLine("Загаданное число: " + chislo.ToString());
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
14.01.2023, 17:26
Переменная вне классов не может быть ни public ни private, т.к. она видна всем и вся. С модификатором она объявляется внутри классов..

Добавлено через 48 секунд
Цитата Сообщение от Pilarentes Посмотреть сообщение
вы зачем в пространстве имен определяете переменную?
Он работает в NET 5 или 6. Там такое допустимо.
2
0 / 0 / 0
Регистрация: 14.01.2023
Сообщений: 4
14.01.2023, 17:27  [ТС]
Так, хорошо. Но почему мне говорят, что ошибка не в этом, а в том, что я в пространство имени пихаю методы?
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
14.01.2023, 17:30
Цитата Сообщение от leguushka Посмотреть сообщение
что я в пространство имени пихаю методы
C#
1
2
3
int n = 5;
int foo (int n) { return n + 10; }
Console.WriteLine(foo(n));  // 15
Так понятнее?

Возможно тем, кто это говорит, нужен некий класс, в который эти методы и запихиваются. А не в нэймспесе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2023, 17:30
Помогаю со студенческими работами здесь

Exporting non-public type through public API
Exporting non-public type through public API Показывает возле метода класса. В чем причина данного предупреждения? Как от него...

Как из потока public void X1() извлечь значение string в public void X2()
Как из: public void X1() \\Запускается из потока (Process = new Thread(X1)) { //Какой то алгоритм string str =...

Реализовать класс Студент с публичным (public) полем Имя и публичным (public) методом print(), который выводит поле имя
Реализовать класс Студент с публичным (public) полем Имя и публичным (public) методом print(), который выводит поле имя на экран....

Ошибка CS0116 Пространство имен не может напрямую включать в себя такие члены, как поля или методы
Как исправить ? using System; using System.Collections.Generic; using System.Linq; using System.Text; // Создать...

Ошибка CS0116 Пространство имен не может напрямую включать в себя такие члены, как поля или методы
Добрый день! Задача: Построить график функции y=x^2. График строится с помощью отрезков. Для построения отрезков использовать алгоритм...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru