Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Я увижу только тебя
     
    
Добавлено: 28.02.10 19:09
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 VβÐUηìt | Web-сайт: смекаешь.рф
      
       
  
Есть ли в C# промежуточная область видимости между Public и Private? То есть, свойство какого-либо класса доступно ему самому, а так же нескольким другим, и больше никому. Вроде бы на эту тему в C++ было словечко friend, а вот про C# я такого не нарыл. Что-нибуть там есть подобное?
 
    
Заранее благодарен.
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 6
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #1
       
Добавлено:  28.02.10 20:38
       
    
       
  
Есть internal, тип будет доступен в пределах одной сборки.
 
    
Но учти, в дотнете почти всегда есть возможность обойти это ограничение через Reflection, и создать экземпляр класса, к которому нет прямого доступа. А также вызывать методы и обращаться к свойствам и полям, к которым также нет доступа
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 Skywalker
![]()
![]()
![]()
![]()
![]()
![]()
ICQ: 300-70-6пятьЪ 
Вопросов: 62
Ответов: 545
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  28.02.10 21:51
       
    
       
  
protected: Доступ ограничен содержащим классом или типами, которые являются производными от содержащего класса.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 VβÐUηìt
![]()
![]()
![]()
Вопросов: 246
Ответов: 3333
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  28.02.10 23:05
       
    
       
  
Про эти оба расты я в курсе, мне бы видимость расширить. Неужели они не предусмотрели передачу данных между определенными классами.
 
    
Ну как бы мне не жалко 
 Главная цель - убрать лишнюю гадость из видимости, чтобы не сбивать людей с толку. А тут он в ядро классу залез, поменял что-то и все вылетело нахер.
Тобишь через наследование?
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа:
 VβÐUηìt
![]()
![]()
![]()
Вопросов: 246
Ответов: 3333
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  28.02.10 23:05
       
    
       
  
Хотя стоп, один класс не может обратиться к protected-свойству другого класса, даже если они одного рода, или я не прав?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #5
       
Добавлено:  02.03.10 00:37
       
    
       
  
Почитай про области видимости в .NET, и вообще о наследовании в документации, и многое станет понятным.
 
    
Выбор общего наследника только для того, что ограничить область видимости некоторых членов типа - неверное решение, так как наследование предназначено для других целей.
Как наиболее правильно организовать архитектуру того что ты хочешь, можно сказать, если ты подробно опишешь какие методы ты собираешься скрывать и для чего.
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #6
       
Добавлено:  02.03.10 08:00
       
    
       
  
 
    
А Фаулер, случайно, не твой творческий псевдоним..?