нужно создать класс-прототип для хранения и обработки экземпляров структур, наложить ограничение на параметр типа данных: элементы коллекции должны быть значимого типа, тип-аргумент должен реализовывать интерфейс IComparable вот моя структура
public struct Sportsmen:IComparable
{
public string Surname { get; private set; }
public int YearOfBirth { get; private set; }
public string KindOfSport { get; private set; }
public string Rank { get; private set; }
public void SetSurname(string surname)
{
Surname = surname;
}
public void SetYearOfBirth(int yearOfBirth)
{
if (yearOfBirth > 0)
YearOfBirth = yearOfBirth;
else
throw new Exception("Неверный год рождения");
}
public void SetKindOfSport(string kindOfSport)
{
KindOfSport = kindOfSport;
}
public void SetRank(string rank)
{
Rank = rank;
}
public Sportsmen(string surname,int yearOfBirth,string kindOfSport,string rank)
{
Surname = surname;
YearOfBirth = yearOfBirth;
KindOfSport = kindOfSport;
Rank = rank;
}
public override string ToString()
{
return ("Фамилия : " + Surname + "\nГод Рождения : " + YearOfBirth + "\nВид спорта : " + KindOfSport + "\nРазряд : " + Rank);
}
public int CompareTo(object obj)
{
return KindOfSport.CompareTo(((Sportsmen)obj).KindOfSport);
}
}
вот мой класс
class ClassSportsmen<T> where T: struct,IComparable<T>
{
T[] array;
IComparable<T> compare;
public ClassSportsmen(T[] listStruct,IComparable<T> compare=null)
{
array = listStruct;
}
}
при создании объекта класса
ClassSportsmen<Sportsmen> sportsmen = new ClassSportsmen<Sportsmen>(sportsmens);
подчёркивает Spotrsmen:
CS0315 The type 'Sportsmen' cannot be used as type parameter 'T' in the generic type or method 'ClassSportsmen'. There is no boxing conversion from 'Sportsmen' to 'System.IComparable'.
помогите исправить пожалуйста
IComparable и IComparable <T> - разные интерфейсы.
Решение: заменить интерфейсы так, чтобы они были одинаковыми.
public struct Sportsmen : IComparable, IComparable<Sportsmen>
или
сlass ClassSportsmen<T> where T : struct, IComparable
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Я использовал 2 метода для получения значения ячейки(пустой и с цифрой): sheetGetText(row,cell) всегда дает пустую строку, а sheet
У меня есть круг и его заливка это картинка которая в папке \Resources\Images\При нажатии на нее пользователь может выбрать другую, которая будет...
Вопрос не нов, но в сети я не смог найти ответа к сожалениюВ общем ситуация следующая,у меня есть класс к примеру:
Как добавить данные вводимые в DataGrid в базу данных MySQL? Добавленных данных нет в базе, и ошибок, почему это происходит тоже нетЯ пытаюсь решить...