私のアプリには、いくつかの比較方法があります。ユーザーが使用する並べ替え方法を選択できるようにしたいと思います。理想的には、デリゲートを設定したいと思います。ユーザーの選択に基づいて更新されます。このようにして、List.Sort(delegate) を使用してコードを汎用的に保つことができます。
C# デリゲートを使用するのはこれが初めてで、構文エラーが発生しています。これが私がこれまでに持っているものです:
デリゲート:
private delegate int SortVideos(VideoData x, VideoData y);
private SortVideos sortVideos;
クラスコンストラクターで:
sortVideos = Sorting.VideoPerformanceDescending;
public static Sorting クラスの比較メソッド (直接呼び出すと機能します):
public static int VideoPerformanceDescending(VideoData x, VideoData y)
{
*code statements*
*return -1, 0, or 1*
}
「いくつかの無効な引数」を訴える失敗した構文:
videos.Sort(sortVideos);
最終的に、「sortVideos」を変更して、選択したメソッドを指すようにしたいと思います。「videos」はタイプ VideoData のリストです。私は何を間違っていますか?