2011-06-13 3 views
2

Можно создать дубликат:
C#: What does new() mean?Что означает new() в данном случае?

Я смотрю на определение Enum.TryParse:

public static bool TryParse<TEnum>(string value, out TEnum result) where TEnum : struct, new(); 

и интересно, что new() означает здесь.

+0

@Greg: Вы правы, я должен закрыть этот. Спасибо всем, кто ответил! – Andrey

ответ

1

Это ограничение общего параметра. Это означает, что TEnum должен иметь бездонный публичный конструктор (и позволяет делать new TEnum()). Оформить заказ MSDN page для получения более подробной информации и других ограничений.

1

Это общий тип ограничения, который требует, чтобы общий параметр типа TEnum должен поддерживать конструктор по умолчанию (можно без обновленного аргументов).

1

Это означает, что тип TEnum должен иметь возможность использовать

уаг х = новый TEnum();

1

Это в основном говорит, что вы можете использовать только это на типы, которые имеют открытый конструктор без параметров, а именно: где вы можете сделать:

var something = new TEnum(); 

Это позволяет применять, что вы можете создать тип внутренне.

Подробнее см. В C# new Constraint.

1

новый() как ограничение общего типа означает, что тип, используемый как общий параметр, должен иметь конструктор с заданными параметрами; здесь он должен иметь конструктор по умолчанию без параметров.

Смежные вопросы