Компилятор C # не должен рассматривать ограничения типов как часть сигнатуры метода, потому что они не являются частью сигнатуры метода для CLR. Было бы катастрофой, если бы разрешение перегрузки сработало по-разному для разных языков (в основном из-за динамического связывания, которое может произойти во время выполнения и не должно отличаться от одного языка к другому, иначе все ады будут разрываться).
Почему было решено, что эти ограничения не будут частью сигнатуры метода для CLR, это еще один вопрос, и я мог только сделать плохо информированные предположения об этом. Я дам понять, что люди в курсе.
На самом деле сортировка не используется по умолчанию, она дает вам сортировку по умолчанию в качестве первого выбора.
Речь идет о сопоставлении или наборе символов что ваша база данных будет использовать в своих текстовых типах. Ваш вариант по умолчанию обычно основан на региональных настройках, поэтому, если вы не планируете глобализацию, это обычно приятный оттенок.
Сопоставления также определяют чувствительность к регистру и диакритическому знаку (например, «Большой» == «большой»? CI, это так). Просмотрите список MySQL , чтобы узнать обо всех вариантах.
Сопоставление сообщает базе данных, как выполнять сопоставление и сортировку строк. Он должен соответствовать вашей кодировке.
Если вы используете UTF-8, сортировка должна быть utf8_general_ci. Это будет сортироваться в порядке Unicode (без учета регистра) и работает для большинства языков. Он также сохраняет порядок ASCII и Latin1.
Стандартным параметром сортировки обычно является latin1.