Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > С#

С# Средство разработки на платформе .Net

Ответ
 
Опции темы
Старый 02.07.2010, 21:22   #1
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Статичные классы и шаблоны в них

есть некий класс TList:
class TLIst<TYPE>
{
.....
TYPE[] a;
static int count;
//много методов управления листом
}

Потом значит хочу сделать некий менеджер ресов:
static class Global
{
TList<object> list;
public Global()//конструктор, вызываемый вначале, должен инициализировать лист
{
list=new TLIst<object>();//Error
}
}

результат:
'Glob.list': невозможно объявить члены экземпляров в статическом классе (CS070
Нестандартные тип 'DArray.TList' не могут использоваться с аргументами типа (CS030
Статические классы не могут иметь конструкторы экземпляра (CS0710)
(Offline)
 
Ответить с цитированием
Старый 02.07.2010, 22:11   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Статичные классы и шаблоны в них

static class Global
{
static TList<object> list;
public Global()//конструктор, вызываемый вначале, должен инициализировать лист
{
list=new TLIst<object>();//Error
}
}

Попробуй так
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reizel (02.07.2010)
Старый 02.07.2010, 22:19   #3
h1dd3n
Бывалый
 
Аватар для h1dd3n
 
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений
(для 450 пользователей)
Ответ: Статичные классы и шаблоны в них

У статического класса не может быть экземпляров => и конструктора экземпляров быть не может (http://msdn.microsoft.com/ru-ru/library/79b3xss3.aspx)
Используй статические конструкторы:
http://msdn.microsoft.com/ru-ru/library/k9x6w0hc.aspx
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reizel (02.07.2010)
Старый 02.07.2010, 23:06   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Статичные классы и шаблоны в них

Ну если не ругалось на самом конструкторе, то это и был статический конструктор, который не может инициализировать не статическую переменную... а вообще вроде static у класса обязывает объявлять все мемберы статическими.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reizel (02.07.2010)
Старый 02.07.2010, 23:29   #5
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Статичные классы и шаблоны в них

во я тупонул... Спасиб, что то сам не допер
(Offline)
 
Ответить с цитированием
Старый 02.07.2010, 23:44   #6
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Статичные классы и шаблоны в них

Гм а нефига, такие же ошибки выдает
(Offline)
 
Ответить с цитированием
Старый 02.07.2010, 23:45   #7
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Статичные классы и шаблоны в них

Вот так попробовал:
class Glob
{
private object list;
public Glob()
{
object lists=new TList<object>();
this.list=lists;
}
}

Пишет что
Нестандартные тип 'DArray.TList' не могут использоваться с аргументами типа (CS030
(Offline)
 
Ответить с цитированием
Старый 02.07.2010, 23:58   #8
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Статичные классы и шаблоны в них

Пришлось делать ограничение на 1000 экземпляров. Для игры хватит, думаю
(Offline)
 
Ответить с цитированием
Старый 03.07.2010, 00:01   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Статичные классы и шаблоны в них

Можно весь код?
Кстати стандартный лист не подходит (List<T>)?
    public class TList<T>:List<T> 
    {
        public void ClearList()
        {
            Clear();
        }
    }
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 03.07.2010, 00:40   #10
h1dd3n
Бывалый
 
Аватар для h1dd3n
 
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений
(для 450 пользователей)
Ответ: Статичные классы и шаблоны в них

Сообщение от pax Посмотреть сообщение
Ну если не ругалось на самом конструкторе, то это и был статический конструктор, который не может инициализировать не статическую переменную... а вообще вроде static у класса обязывает объявлять все мемберы статическими.
Да вроде ругалось =):
Статические классы не могут иметь конструкторы экземпляра (CS0710)
Павел
Пользуйся стандартными средствами - List, ArrayList и большая часть проблем отпадет сама по себе.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (03.07.2010)
Старый 03.07.2010, 00:44   #11
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Статичные классы и шаблоны в них

долой велосипеды! и вобще менеджер ресурсов лучше делать на словарях и других списках в которых можно получить доступ по ключу
(Offline)
 
Ответить с цитированием
Старый 03.07.2010, 00:52   #12
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Статичные классы и шаблоны в них

Сообщение от h1dd3n Посмотреть сообщение
Да вроде ругалось =):
Похоже не дочитал
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


Часовой пояс GMT +4, время: 22:16.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com