C# Проверка времени компиляции на Icomparable, когда Array.sort [Duplicate]C#

Место общения программистов C#
Ответить
Anonymous
 C# Проверка времени компиляции на Icomparable, когда Array.sort [Duplicate]

Сообщение Anonymous »

Я читаю книгу C#, чтобы узнать основы языка, чтобы переехать из C ++. Я столкнулся с проблемой дизайна, с которой я не могу столкнуться: когда я вызову array.sort (array) , он выбрасывает System.argumentException: По крайней мере, один объект должен реализовать IcomPable , если Array не предоставляет интерфейс IcomParable
. То же самое происходит с OrderBy из Linq.
, так что мой вопрос: почему C# не может просто проверить, содержит ли мой массив сопоставимые элементы или нет в время компиляции ?

Код: Выделить всё

public class Person(string name)
{
public string Name { get; set; } = name;
}
public class Program
{
public static void Main(string[] args)
{
Person[] people =
{
new("Simon"),
new("Jenny"),
new("Adam"),
new("Richard")
};
Array.Sort(people);
}
}
Этот код выбросит исключение во время выполнения , потому что человек не предоставляет Icomplable Interface.
, но если я сделаю некоторую дополнительную функцию, подобную этой:



Подробнее здесь: https://stackoverflow.com/questions/797 ... array-sort
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»