forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   Статичные классы и шаблоны в них (http://forum.boolean.name/showthread.php?t=12794)

Reizel 02.07.2010 21:22

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

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

результат:
'Glob.list': невозможно объявить члены экземпляров в статическом классе (CS0708)
Нестандартные тип 'DArray.TList' не могут использоваться с аргументами типа (CS0308)
Статические классы не могут иметь конструкторы экземпляра (CS0710)

pax 02.07.2010 22:11

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

Попробуй так

h1dd3n 02.07.2010 22:19

Ответ: Статичные классы и шаблоны в них
 
У статического класса не может быть экземпляров => и конструктора экземпляров быть не может (http://msdn.microsoft.com/ru-ru/library/79b3xss3.aspx)
Используй статические конструкторы:
http://msdn.microsoft.com/ru-ru/library/k9x6w0hc.aspx

pax 02.07.2010 23:06

Ответ: Статичные классы и шаблоны в них
 
Ну если не ругалось на самом конструкторе, то это и был статический конструктор, который не может инициализировать не статическую переменную... а вообще вроде static у класса обязывает объявлять все мемберы статическими.

Reizel 02.07.2010 23:29

Ответ: Статичные классы и шаблоны в них
 
во я тупонул... Спасиб, что то сам не допер :)

Reizel 02.07.2010 23:44

Ответ: Статичные классы и шаблоны в них
 
Гм а нефига, такие же ошибки выдает :(

Reizel 02.07.2010 23:45

Ответ: Статичные классы и шаблоны в них
 
Вот так попробовал:
class Glob
{
private object list;
public Glob()
{
object lists=new TList<object>();
this.list=lists;
}
}

Пишет что
Нестандартные тип 'DArray.TList' не могут использоваться с аргументами типа (CS0308)

Reizel 02.07.2010 23:58

Ответ: Статичные классы и шаблоны в них
 
Пришлось делать ограничение на 1000 экземпляров. Для игры хватит, думаю :)

pax 03.07.2010 00:01

Ответ: Статичные классы и шаблоны в них
 
Можно весь код?
Кстати стандартный лист не подходит (List<T>)?
Код:

    public class TList<T>:List<T>
    {
        public void ClearList()
        {
            Clear();
        }
    }


h1dd3n 03.07.2010 00:40

Ответ: Статичные классы и шаблоны в них
 
Цитата:

Сообщение от pax (Сообщение 152596)
Ну если не ругалось на самом конструкторе, то это и был статический конструктор, который не может инициализировать не статическую переменную... а вообще вроде static у класса обязывает объявлять все мемберы статическими.

Да вроде ругалось =):
Цитата:

Статические классы не могут иметь конструкторы экземпляра (CS0710)
Павел
Пользуйся стандартными средствами - List, ArrayList и большая часть проблем отпадет сама по себе.

Dream 03.07.2010 00:44

Ответ: Статичные классы и шаблоны в них
 
долой велосипеды! и вобще менеджер ресурсов лучше делать на словарях и других списках в которых можно получить доступ по ключу

pax 03.07.2010 00:52

Ответ: Статичные классы и шаблоны в них
 
Цитата:

Сообщение от h1dd3n (Сообщение 152609)
Да вроде ругалось =):

Похоже не дочитал :rolleyes:


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot