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

Доступ к полям верхнего класса из вложенного

06.06.2015, 19:56. Показов 9441. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
объясните почему не пашет вот эта запись??? мне бы очень помогло если бы это работало... может есть все же какой то способ? просто если не ошибаюсь в плюсах оно будет работать, и вообще это как бы не противоречит логике...
C#
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
    int n = 10;
 
    class B
    {
        int foo()
        {
            return n;
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.06.2015, 19:56
Ответы с готовыми решениями:

Доступ из вложенного класса
Начал в Visual Basic недавно. Во вложенном классе должны быть видны все имена (переменные, методы, свойства) из содержащего класса. ...

Как вызвать метод "верхнего" из вложенного класса
class Fraction{ friend class Calk; long int a; unsigned short int b; public: void Read( Fraction &a, Fraction &b, int...

Может ли метод вложенного типа иметь доступ к private полям внешнего типа
A) Да, если метод вложенного типа имеет модификатор public B) Да, если вложенный тип имеет модификатор public C) Нет D) Да

12
 Аватар для newyork7776
351 / 344 / 279
Регистрация: 21.05.2013
Сообщений: 1,312
06.06.2015, 20:01
C#
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
       int n = 10;
 
       class B : A
       {
           int foo()
           {
               return n;
           }
      }
}
0
Заблокирован
06.06.2015, 20:02  [ТС]
newyork7776, нет нет это не то... наследование в моем случае не подойдет, к тому же это не доступ к переменной класса A, это доступ к наследованной переменной
0
 Аватар для Romalei
109 / 50 / 55
Регистрация: 17.09.2013
Сообщений: 298
06.06.2015, 20:04
Или так
C#
1
2
3
4
5
6
7
8
9
10
11
12
class A
    {
        static int n = 10;
 
        class B
        {
            int foo()
            {
                return n;
            }
        }
    }
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
06.06.2015, 20:05
Rillaxac, В C# вложенный класс не наследует поля класса контейнера. Вложенные классы в C# это скорее чисто декоративная возможность.
0
Заблокирован
06.06.2015, 20:05  [ТС]
Romalei, тоже не вариант, нужная мне переменная жестко привязана к объекту... ладно блин просто кучу конструкторов придется переписывать -_-

Добавлено через 33 секунды
Storm23, жаль((
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
06.06.2015, 20:06
Цитата Сообщение от Rillaxac Посмотреть сообщение
Storm23, жаль((
Ничего не жаль. Это противоречит принципам ООП и инкапсуляции.
0
 Аватар для newyork7776
351 / 344 / 279
Регистрация: 21.05.2013
Сообщений: 1,312
06.06.2015, 20:14
возмножно так?
0
Заблокирован
07.06.2015, 08:19  [ТС]
Цитата Сообщение от Storm23 Посмотреть сообщение
Ничего не жаль. Это противоречит принципам ООП и инкапсуляции.
каким боком противоречит? о том и речь в первом сообщении что как раз таки это имхо никак не противоречит
Цитата Сообщение от newyork7776 Посмотреть сообщение
возмножно так?
да знаю я, о том и речь, просто куча наследованных классов, придется везде конструкторы переписывать из за этого
Цитата Сообщение от Rillaxac Посмотреть сообщение
ладно блин просто кучу конструкторов придется переписывать -_-
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
07.06.2015, 08:29
Rillaxac, я как-то очень сильно сомневаюсь, что описанная тобой конструкция будет работать хоть в каком-то языке. В данном случае проблема вовсе не в области видимости. Из вложенных классов прекрасно видны приватные члены вмещающих классов. Проблема же здесь в том, что ты пытаешься обратиться к члену экземпляра, а самого экземпляра не создал.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        class A
        {
           private int n = 10;
 
            class B
            {
                int foo()
                {
                    var a = new A();
                    return a.n;
                }
            }
        }
0
Заблокирован
07.06.2015, 13:05  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Rillaxac, я как-то очень сильно сомневаюсь, что описанная тобой конструкция будет работать хоть в каком-то языке. В данном случае проблема вовсе не в области видимости. Из вложенных классов прекрасно видны приватные члены вмещающих классов. Проблема же здесь в том, что ты пытаешься обратиться к члену экземпляра, а самого экземпляра не создал.
бред говоришь, ты не понял вообще смысла темы, короче закрыли тему ! нельзя так нельзя...
0
07.06.2015, 13:11

Не по теме:

Цитата Сообщение от Rillaxac Посмотреть сообщение
ты не понял вообще смысла темы
Твоя ошибка в данном вопросе слишком типична для того, чтобы ее не понять. Скорее это ты не понимаешь разницы между членами класса и членами экземпляра. Ну да ладно: по ходу это бесполезно.

0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
07.06.2015, 13:18
C#
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
    int n = 10;
 
    class B
    {
        int foo(A example)
        {
            return example.n;
        }
    }
}
Иначе никак, все правильно говорится выше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.06.2015, 13:18
Помогаю со студенческими работами здесь

Доступ из вложенного класса к вызывающему классу
Есть экземпляр класса View.(создается экземпляр окна). Здесь же создается переменная Count, коллекция Chase. В нем создается экземпляр...

ООП. Доступ к данным из вложенного класса
public class mFiles { public string NameFile; //Имя файла public cNew News = new cNew(); public...

Доступ к полям класса через переменные другого класса
Уважаемые коллеги! Почему в моделях Аnylogic для упрощения доступа к полям одного класса (класс А) вводится в другой класс (класс В)...

Доступ к полям класса
Имеет список list с объектами класса zapis list<zapis> list как мне получить значение поля класса, например поле Number

Доступ к приватным полям класса
вот класс: #ifndef STUDENT_H_INCLUDED #define STUDENT_H_INCLUDED #include "iostream" #include "string" #include...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №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
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru