Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
81 / 75 / 29
Регистрация: 08.08.2013
Сообщений: 431
Записей в блоге: 1
1

Можно ли создать класс, который виден только для другого класса?

24.04.2019, 17:15. Показов 2743. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.

есть 3 класса
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    
namespace MyExp
{
   class MyTree
   {
      //...
   }
 
 
   class MyFolder
   {
      //...
   }
 
   static class Stat
   {
      //...
   }
}
Основной класс - это класс MyTree, объект которого создается при нажатии кнопки.

C#
1
2
3
4
5
6
7
8
9
        private void button1_Click(object sender, EventArgs e)
        {
            string path=Directory.GetCurrentDirectory();
            MyTree tree1 = new MyTree(path);
            textBox1.Text = tree1.text_view_short;
 
           //Stat.text_view_short = "123"; //нужно, чтобы так нельзя было сделать
            //MyFolder ob = new MyFolder(path); //нужно, чтобы так нельзя было сделать
        }
Класс MyTree использует для своих нужд классы MyFolder и Stat.
Больше нигде в программе классы MyFolder и Stat не должны использоваться, но они видны в других областях программы.
Вопрос: как сделать так, чтобы классы MyFolder и Stat были видны только классу MyTree.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2019, 17:15
Ответы с готовыми решениями:

Разрешить доступ к методу класса только для другого класса
Здравствуйте, нужно что бы у Item ссылка на Box была только для чтения, но при добавлении Item в...

Как в случае с Dependency Injection внедрять отдельный экземпляр некоторого класса только лишь для одного другого класса
Здравствуйте, пытаюсь понять как же всё таки правильно использовать Dependency Injection в случае c...

Как создать класс, который содержит элементы другого класса
Добрый день, я чисто любитель, начала сама потихоньку разбираться в с++, благополучно дошла до...

Благодаря опережающему объявлению класса можно создать только УКАЗАТЕЛЬ на этот класс; так ли это?
class B; class A{ A(); ~A(); B* b; //А вот так не компилится //B b_0; };

4
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
24.04.2019, 17:20 2
Лучший ответ Сообщение было отмечено Элд Хасп как решение

Решение

sysrepos,
C#
1
2
3
4
5
6
7
8
9
10
public class MyTree
{
    private class MyFolder
    {
    }
        
    private static class Stat
    {
    }
}
2
81 / 75 / 29
Регистрация: 08.08.2013
Сообщений: 431
Записей в блоге: 1
24.04.2019, 18:04  [ТС] 3
в классе MyTree используется поле типа MyFolder, поэтому если в класс MyTree вложить класс MyFolder, возникает исключение.
(на всякий случай выкладываю полностью проект)

Ошибка 1 Несовместимость по доступности: доступность типа поля "MyExp.MyTree.MyFolder" ниже доступности поля "MyExp.MyTree.ob" C:\Prelogs\ПРОГРАММИРОВАНИЕ\С Sharp\КОД\_EXP\7-деревья\5 мое дерево+\MyExp\MyTree.cs 113 25 MyExp
Вложения
Тип файла: zip MyExp.zip (60.5 Кб, 0 просмотров)
0
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
24.04.2019, 18:12 4
Лучший ответ Сообщение было отмечено sysrepos как решение

Решение

sysrepos, протестировал такой пример. Всё отлично работает.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MyTree
 {
     private class MyFolder
     {
         public MyFolder()
         {
         }
     }
       
     private MyFolder mf;
       
     public MyTree()
     {
         mf = new MyFolder();
     }
}
1
81 / 75 / 29
Регистрация: 08.08.2013
Сообщений: 431
Записей в блоге: 1
24.04.2019, 18:20  [ТС] 5
да, у меня в моем примере вроде тоже заработало (указал у соответствующих полей модификатор private - и заработало, спасибо)
0
24.04.2019, 18:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2019, 18:20
Помогаю со студенческими работами здесь

Возможно ли создать объект своего класса, который состоит из объектов другого класса?
Возможно ли создать объект своего класса, который состоит из объектов другого класса, например: ...

Класс который взаимодействует с данными из другого класса
Здравствуйте, уважаемые. Хочу сделать класс, который сортирует данные другого класса. Помогите в...

Необходимо создать класс Java, который представляет карту учебного класса, позволяет определить место для студента, отображает карту класса и ищет зан
Доброго времени суток! Нашёл на сайте тему с такой задачкой, но там никто не ответил :...

Класс может быть унаследован только из другого класса
Доброго. Ругается на унаследование IModelBinder. Imports System.Web.Mvc ' Public Class...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru