Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Языки программирования

Важная информация

Языки программирования Изучаем С++, Sql, php, Lua, Python

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.08.2010, 04:10   #1
LLIbIcpEP
Новичок
 
Аватар для LLIbIcpEP
 
Регистрация: 08.03.2010
Сообщений: 20
Сказал(а) спасибо: 8
Поблагодарили 2 раз(а) в 1 сообщении
LLIbIcpEP На верном пути
По умолчанию Monodevelop on Debian + Singleton

Доброго времени суток. Вообщем ввиду появления немного свободного времени решил продолжить разработку WWLauncher, если кто помнит...
В серверной части используется паттерн одиночка. Все тесты проводил на сервере под дебианом, кодил я в винде, в монодевелоп 2.4. Через неделю после возобновления разработки перешел на дебиан и на десктопе, поставил там моно 2.6, монодевелоп 2.4 (из сорцов). Каково же было мое удивление, когда я стащил с репо сорцы серверной части и они отказались компилится (а день назад прекрасно компилились под виндой).
Юзал свой вариант класса-потомка для классов-синглтонов, после медитации попробовал использовать то, что сейчас на википедии.
Код:
public class Singleton<T> where T : class
{
  protected Singleton() { }
  private sealed class SingletonCreator<S> where S : class
  {
    private static readonly S instance = (S) typeof(S).GetConstructor(
                BindingFlags.Instance | BindingFlags.NonPublic,
                null,
                new Type[0],
                new ParameterModifier[0]).Invoke(null);
    public static S CreatorInstance
    {
      get { return instance; }
    }
  }
  public static T Instance
  {
    get { return SingletonCreator<T>.CreatorInstance; }
  }
}
Монодевелоп в обоих вариантах говорит:
Код:
Singleton.cs(38,38): Error CS0305: Using the generic type `Singleton<T>.SingletonCreator<S>' requires `2' type argument(s) (CS0305)
Эта строчка:
Код:
get { return SingletonCreator<T>.CreatorInstance; }
Я что-то не понял, в чем дело...
Всем заранее спасибо...

PS: Если кто то хочет изучать си шарп и присоединится к команде - милости прошу Проект исключительно для самообразования, ну и, скажем так, для внесения своей лепты в опенсорц-комьюнити мангоса/тринити (pet-project), упор на Mono (т.е. работа серверной части под Linux), поддержка configure && make в Linux, обратная совместимость с .NET 2.0. Большие планы на развитие, в частности на создание мощных инструментов для ГМов (ака квайс) но без доступа к серверу mysql/ssh. Куча фишек, которые в принципе не нужны, но просто интересно было их реализовывать (например модуль CompID). Особенно необходим человек, способный рисовать для клиентской части интерфейс (кнопочки и т.д.).
LLIbIcpEP вне форума   Ответить с цитированием
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10952] Don't use singleton to access static functions. newsbot CMaNGOS Commits 0 03.01.2011 14:00
[10273] Avoid some redundent and recursive calls to SpellMgr singleton. newsbot CMaNGOS Commits 0 26.07.2010 16:00


Текущее время: 23:04. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot