实现接口包括抛出新的NotImplementedException…为什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (59)

实现一个接口,实现如下:

public string City 
{ 
    get => throw new NotImplementedException(); 
    set => throw new NotImplementedException(); 
}

而不是这个:

public string City { get; set; }

不确定这是特定于C#7或VS或其他什么。我只知道在过去的一周左右,接口的自动实现已经发生了变化。

界面:

public interface IMyInterface
{
    string City { get; set; }
}
提问于
用户回答回答于

默认情况下接口属性的实现如下:

    public string City
    {
        get
        {
            throw new NotImplementedException();
        }

        set
        {
            throw new NotImplementedException();
        }
    }

用NotImplementedExceptions来强制实际使用它们来实现接口实现是有意义的。

用户回答回答于

一般来说,默认情况下实现“失败”代码有一个很好的理由:作为开发人员,必须对如何实现这段代码作出决定。如果方法的默认实现只返回default(T)是吗?该代码将“工作”,直到有人注意到‘未实现’的代码。

扫码关注云+社区