Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2013, 12:53   #1
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию Вопрос по интерфейсам

Здравствуйте, может кто нибудь знает возможно ли реализовать следующее:

Допустим есть класс и интерфейс к нему:

Код:
public class A: iA
{
  public void Method() 
 {
 }
}

public interface iA
{
  void Method();
}
Это стандартная реализация. Так вот мне бы хотелось сделать так чтобы доступ к объекту А был разрешен только через имеющийся интерфейс. Возможно ли такое?
То есть:

Код:
A obj = new A();
A.Method(); // хочу чтобы так сделать было нельзя, т.е. чтобы метод даже не виден был.

iA iobj = (iA)obj;
iobj.Method(); // чтобы можно было сделать только вот так.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 03.12.2013, 13:37   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Explicit
Код:
void iA.Method() 
 {
 }

A obj = new A();
((iA)A).Method();
eval вне форума Ответить с цитированием
Старый 03.12.2013, 13:48   #3
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
Explicit
Код:
void iA.Method() 
 {
 }

A obj = new A();
((iA)A).Method();
B что с этой информацией делать то?? Как метод то закрыть?
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 03.12.2013, 13:50   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

он уже "закрыт"
eval вне форума Ответить с цитированием
Старый 03.12.2013, 13:58   #5
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
он уже "закрыт"
A obj = new A();
A.Method();
Это по прежнему допустимо.

Покажите код интерфейса??
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось WorldMaster; 03.12.2013 в 14:01.
WorldMaster вне форума Ответить с цитированием
Старый 03.12.2013, 15:57   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

при чем тут интерфейс, вы класс изменили как показал?
eval вне форума Ответить с цитированием
Старый 03.12.2013, 16:51   #7
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
при чем тут интерфейс, вы класс изменили как показал?
Так, как вы это показали, только вам и понятно. А вообще разобрался уже что к чему.
Спасибо.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 03.12.2013, 17:00   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

так это как? я вам и кейворд указал, и как метод модифицировать, и еще пример использования, и все еще мало? нууу я уж и не знаю тогда чего еще.. разве что гопока не сплясал с бубнами.
eval вне форума Ответить с цитированием
Старый 03.12.2013, 20:52   #9
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

В библиотеку классов/сборку закинуть и фабричный метод выставить наружу, которым можно получать инстансы интерфейса.
А вообще, может, проблема надумана ? убрать паблик у метода и делов.
phomm вне форума Ответить с цитированием
Старый 03.12.2013, 20:56   #10
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
В библиотеку классов/сборку закинуть и фабричный метод выставить наружу, которым можно получать инстансы интерфейса.
А вообще, может, проблема надумана ? убрать паблик у метода и делов.
Может и надумана ... но вот уперлось мне так сделать ...
К тому же оказывается это нормальное решение .. На МСДН оказывается есть полный пример.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен ликбез по интерфейсам на примере IXMLNode Sasha_S Общие вопросы Delphi 4 23.11.2012 19:49
Вопрос по mySQL + Вопрос по RichEdit HTL Общие вопросы Delphi 4 01.01.2010 20:22
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10