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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2009, 21:20   #1
ActioNs
Пользователь
 
Регистрация: 17.07.2008
Сообщений: 38
Вопрос Создания класса с закрытой реализацией (C#)

Необходимо в DLL на C# создать класс с закрытой реализацией и открытым интерфейсом.

Если отдельно под него делать интерфейс, например:
Код:
public interface IMyClass { }
internal class MyClass : IMyClass { }
то как создавать экземпляр класса? делал отдельный класс что то в стиле
Код:
public class MyClassManager
{
public static IMyClass CreateMyClass() { return new MyClass(); }
}
но щас так не хочу. можно как нить сделать создание экземпляра с закрытой реализацией (чтоб вообще не было видно этот класс), открытым интерфейсом, с инициализацией одной лишь функцией? без фабрик. а че нить типо:

Код:
IMyCLass newClass = IMyClass.CreateInstance();
хелп =)
ActioNs вне форума Ответить с цитированием
Старый 04.10.2009, 21:57   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

можно null сделать фабрикой:

Код:
    internal class MyClass : IMyInterface
    {
        public int SomeValue() { return 123; }
    }

    public interface IMyInterface
    {
        int SomeValue();
    }

    public static class IMyInterfaceExt
    {
        public static IMyInterface GetInstance(this IMyInterface o) { return new MyClass(); }
    }

    class Program
    {
        static void Main(string[] args)
        {
            IMyInterface i = ((IMyInterface)null).GetInstance();   // <---

            Console.WriteLine(i.SomeValue().ToString());
alexBlack вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с реализацией алгоритма... kartonka Microsoft Office Excel 20 31.07.2009 21:39
помогите с реализацией модуля в паскале!(горю по срокам) technotamplier Помощь студентам 0 11.05.2009 22:49
проблема с реализацией на складе 4321 БД в Delphi 3 30.10.2008 13:30
Проблема с реализацией потока InseR Общие вопросы Delphi 11 19.08.2008 12:20
Создания Класса Mickle Общие вопросы Delphi 1 30.04.2007 00:44