阅读量:88
是的,C# 8.0引入了一些新的特性,包括接口中的默认实现、接口中的私有成员、接口中的静态成员和接口中的扩展方法。
- 默认实现:接口现在可以包含具有默认实现的方法。这意味着实现接口的类可以选择性地重写这些方法,而不是必须实现所有方法。
interface IExample
{
void Method1();
void Method2()
{
Console.WriteLine("Default implementation of Method2");
}
}
class Example : IExample
{
public void Method1()
{
Console.WriteLine("Implementation of Method1");
}
}
- 私有成员:接口现在可以包含私有成员,这些成员只能在接口内部访问。
interface IExample
{
private void PrivateMethod()
{
Console.WriteLine("Private method in interface");
}
void PublicMethod()
{
PrivateMethod();
}
}
- 静态成员:接口现在可以包含静态成员,这些成员可以在接口上直接调用,而不需要实现接口的类。
interface IExample
{
static void StaticMethod()
{
Console.WriteLine("Static method in interface");
}
}
IExample.StaticMethod();
- 扩展方法:可以向接口添加扩展方法,这些方法可以在接口外部定义并用于扩展接口的功能。
interface IExample
{
void Method();
}
static class ExampleExtensions
{
public static void EnhancedMethod(this IExample example)
{
Console.WriteLine("Enhanced method in extension");
}
}
class Example : IExample
{
public void Method()
{
Console.WriteLine("Implementation of Method");
}
}
Example example = new Example();
example.EnhancedMethod();