溫馨提示×

C# interface的新特性了解嗎

c#
小樊
89
2024-07-19 13:34:43
欄目: 編程語言

是的,C# 8.0引入了一些新的特性,包括接口中的默認實現(xiàn)、接口中的私有成員、接口中的靜態(tài)成員和接口中的擴展方法。

  1. 默認實現(xiàn):接口現(xiàn)在可以包含具有默認實現(xiàn)的方法。這意味著實現(xiàn)接口的類可以選擇性地重寫這些方法,而不是必須實現(xiàn)所有方法。
interface IExample
{
    void Method1();
    
    void Method2()
    {
        Console.WriteLine("Default implementation of Method2");
    }
}

class Example : IExample
{
    public void Method1()
    {
        Console.WriteLine("Implementation of Method1");
    }
}
  1. 私有成員:接口現(xiàn)在可以包含私有成員,這些成員只能在接口內(nèi)部訪問。
interface IExample
{
    private void PrivateMethod()
    {
        Console.WriteLine("Private method in interface");
    }
    
    void PublicMethod()
    {
        PrivateMethod();
    }
}
  1. 靜態(tài)成員:接口現(xiàn)在可以包含靜態(tài)成員,這些成員可以在接口上直接調(diào)用,而不需要實現(xiàn)接口的類。
interface IExample
{
    static void StaticMethod()
    {
        Console.WriteLine("Static method in interface");
    }
}

IExample.StaticMethod();
  1. 擴展方法:可以向接口添加擴展方法,這些方法可以在接口外部定義并用于擴展接口的功能。
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();

0