Здравствуйте, boa67, Вы писали:
B>можно ли созжать константу типа Hashtable, или любого другоро типизированного массива? B>Типа: const DictionaryEntry[] de = .....!
Нет. Константы могут быть только тех типов, которые компиилятор считает элементарными.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: можно ли созжать константу типа Hashtable ?
Здравствуйте, boa67, Вы писали:
B>можно ли созжать константу типа Hashtable, или любого другоро типизированного массива? B>Типа: const DictionaryEntry[] de = .....!
Можно создать константу любого ссылочного типа, но она обязательно должна быть инициализирована константным выражением null (за исключением констант типа string, которые можно инициализировать как null, так и любым строковым литералом).
Re[2]: можно ли созжать константу типа Hashtable ?
Здравствуйте, Lelia, Вы писали:
L>Нет. Константы могут быть только тех типов, которые компиилятор считает элементарными.
Это неверное утверждение. См. Ecma-334, 17.3 Constants
The type specified in a constant declaration shall be sbyte, byte, short, ushort, int, uint, long,
ulong, char, float, double, decimal, bool, string, an enum-type, or a reference-type.
Здравствуйте, boa67, Вы писали:
B>можно ли созжать константу типа Hashtable, или любого другоро типизированного массива? B>Типа: const DictionaryEntry[] de = .....!
а зачем вам константа, определяемая на стадии компиляции?
Если вам нужно, чтобы поле после создания объекта нельзя было изменить — изпользуйте ключевое слово readonly
Поле h в примере ниже можно инициализировать либо по месту, либо в конструкторе. Больше нигде.
public class A
{
private readonly Hashtable h;
}
С уважением, Анатолий Попов.
ICQ: 995-908
Re[2]: можно ли созжать константу типа Hashtable ?
Здравствуйте, Aen Sidhe, Вы писали:
AS>Поле h в примере ниже можно инициализировать либо по месту, либо в конструкторе. Больше нигде.
AS>
AS>public class A
AS>{
AS> private readonly Hashtable h;
AS>}
AS>
Зато содержимое этой хэш-таблицы можно менять до самозабвения.
Можно сделать нечто вроде константы так (хотя содержимое словаря все равно можно менять)
public class A
{
static readonly Dictionary<string, A> _values = new Dictionary<string, A>();
static A()
{
_values["One"] = new A();
_values["Two"] = new A();
}
}
How are YOU doin'?
Re[2]: можно ли созжать константу типа Hashtable ?
Здравствуйте, nikov, Вы писали:
N>Здравствуйте, boa67, Вы писали:
B>>можно ли созжать константу типа Hashtable, или любого другоро типизированного массива? B>>Типа: const DictionaryEntry[] de = .....!
N>Можно создать константу любого ссылочного типа, но она обязательно должна быть инициализирована константным выражением null (за исключением констант типа string, которые можно инициализировать как null, так и любым строковым литералом).
вспоминается анекдот про воздушный сад и математика
Re[3]: можно ли созжать константу типа Hashtable ?