Sar*_*els 2 c# language-features annotations interface
在C#中是否有一种方法可以将方法标记为类的一部分以满足该类实现的接口?我发现自己有时想在挖掘类的代码时为什么会有一些方法,但是当我尝试删除一个因为它没有被使用时,我认为为了让类实现一些接口是必要的.将这些方法标记为这样是很好的.也许就像Java中的@Override注释一样.
编辑: 我宁愿不显式实现接口,因为然后访问我的类的实例上的接口方法变得更麻烦(即,MyClass必须IMyInterface在调用之前转换一个实例MyInterfaceMethod).
编辑: 我也不想使用区域.我不希望通过一些任意名称松散地描述一大块代码作为接口实现的一部分,而是表示特定方法,无论它们在类中的哪个位置,都是接口的一部分.甚至一些XML评论模板用于说明该方法所属的接口会很好.
编辑: 所有答案似乎建议我明确实现接口,我不想做,或我使用区域,我也不想这样做.我认为威尔最了解我的要求.我希望有类似注释的东西,所以我可以做类似以下的事情:
[Interface(IMyInterface)]
public void MyImplicitlyImplementedInterfaceMethod() { }
Run Code Online (Sandbox Code Playgroud)
或者,正如dss539在对此答案的评论中提到的那样:
public implement void MyImplicitlyImplementedInterfaceMethod() { }
Run Code Online (Sandbox Code Playgroud)
就像我们override今天一样: public override bool Equals(object obj) { }.
您有三个选择:
显式实现接口:
您可以使用语法显式实现接口IInterface.MethodName,例如:
bool IInterface.MethodName(string other)
{
// code
}
Run Code Online (Sandbox Code Playgroud)
将接口成员包装在一个区域中
如果您选择通过 UI“实现接口”,工具已经将您的代码包装在一个区域中:
#region IInterface members
public bool MethodName(string other)
{
// code
}
#endregion
Run Code Online (Sandbox Code Playgroud)
通过评论记录
//C# 允许您通过、、/*或XML 文档注释添加多种注释。随意使用!
用#region MyInterface MembersVisual Studio为您做的事情围绕它们.
如果#region仅用于接口成员,则会降低可读性.另一方面,如果将它用于私有变量,属性,方法,事件和不同的接口成员,代码将变得更具可读性.您还可以按功能对成员进行分组.
还有一个选择是使用一个为您完成它的工具.例如,您可以使用NArrange - .NET Code Organizer/Formatter/Beautifier