Вопрос:
Почему
Ответ:
Обобщённый тип (generic type) в C# — это тип, который принимает один или несколько типов в качестве параметров.
Так,
С другой стороны, если бы у нас был тип
#программирование #сишарп #csharp
Почему
Dictionary<int, string>
считается закрытым обобщенным типом?Ответ:
Обобщённый тип (generic type) в C# — это тип, который принимает один или несколько типов в качестве параметров.
Dictionary<TKey, TValue>
— это обобщённый тип, он принимает два типа: TKey
и TValue
. Когда вы заменяете эти параметры типа на конкретные типы, например int и string, вы создаёте экземпляр этого обобщённого типа, который называется закрытым обобщённым типом.Так,
Dictionary<int, string>
— это закрытый обобщённый тип, потому что все его параметры типа заменены на конкретные типы.С другой стороны, если бы у нас был тип
Dictionary<int, T>
, он был бы частично закрытым, потому что только один из параметров типа заменён на конкретный тип, а другой — нет. Dictionary<T, U>
— это открытый обобщённый тип, потому что ни один из его параметров типа не заменён на конкретный тип.#программирование #сишарп #csharp
Помечая тип, член типа или блок операторов ключевым словом unsafe, вы разрешаете внутри этой области видимости использовать типы указателей и выполнять операции над указателями в стиле C++. На рисунке показан пример применения указателей для быстрой обработки битовой карты.
Небезопасный код может выполняться быстрее, чем соответствующая ему безопасная реализация. В последнем случае код потребует вложенного цикла с индексацией в массиве и проверкой границ. Небезопасный метод C# может также оказаться быстрее, чем вызов внешней функции С, поскольку не будет никаких накладных расходов, связанных с покиданием управляемой среды выполнения.
#программирование #сишарп #csharp #csharpdotnet #csharpprogramming
Небезопасный код может выполняться быстрее, чем соответствующая ему безопасная реализация. В последнем случае код потребует вложенного цикла с индексацией в массиве и проверкой границ. Небезопасный метод C# может также оказаться быстрее, чем вызов внешней функции С, поскольку не будет никаких накладных расходов, связанных с покиданием управляемой среды выполнения.
#программирование #сишарп #csharp #csharpdotnet #csharpprogramming