在C#中,你可以使用Lambda表达式来实现接口中的方法。Lambda表达式是一种简洁的代码构造,它可以在需要委托类型的地方定义匿名函数。
假设你有一个接口IMyInterface
,它有一个方法void DoSomething()
,你可以这样使用Lambda表达式来实现这个接口:
interface IMyInterface
{
void DoSomething();
}
class Program
{
static void Main(string[] args)
{
IMyInterface myInterface = () =>
{
Console.WriteLine("在Lambda中实现接口方法");
};
myInterface.DoSomething();
}
}
在上面的代码中,IMyInterface
是一个接口,它只有一个方法DoSomething()
。在Main
方法中,我们创建了一个IMyInterface
的实例,使用Lambda表达式() => { /* 代码实现 */ }
来提供DoSomething
方法的实现。当调用myInterface.DoSomething()
时,Lambda表达式中的代码将被执行。
题外话,Array常用的方法Sort方法其中一个参数重载如下:
public static void Sort<T>(T[] array, Comparison<T> comparison);
这是一个泛型方法,如果定义了int[]进行排序,则T为int,第一个参数为数组对象,第二个参数是一个泛型委托,原型如下:
public delegate int Comparison<in T>(T x, T y);
我们可以用Lambda表达式实现这个参数,实现数组的排序,如下demo:
static void Main(string[] args)
{
int[] numbs = { 3, 0, 5, 7, 8, 1, 2, 4 };
IEnumerator ienum = numbs.GetEnumerator();
while (ienum.MoveNext())
{
Console.WriteLine((int)ienum.Current);
}
Console.WriteLine();
//升序排列
Array.Sort(numbs, (a, b) => a.CompareTo(b));
//降序排列
Array.Sort(numbs, delegate (int a,int b)
{
return b.CompareTo(a);
});
ienum.Reset();
while (ienum.MoveNext())
{
Console.WriteLine((int)ienum.Current);
}
Console.WriteLine();
}
标签:Console,DoSomething,C#,int,ienum,表达式,Lambda
From: https://blog.csdn.net/weixin_44279482/article/details/137594657