根据 StyleCop 中的规则 SA1201,类中的元素必须以正确的顺序出现。
顺序如下:
Fields
Constructors
Finalizers (Destructors)
Delegates
Events
Enums
Interfaces
Properties
Indexers
Methods
Structs
Classes
一切都很好,除了接口部分,因为接口可以包含方法、事件、属性等……
如果我们想严格遵守这条规则,那么我们不会将接口的所有成员都放在一个地方,这通常非常有用。根据 StyleCop 的帮助,可以通过将类拆分为部分类来解决此问题。
例子:
/// <summary>
/// Represents a customer of the system.
/// </summary>
public partial class Customer
{
// Contains the main functionality of the class.
}
/// <content>
/// Implements the ICollection class.
/// </content>
public partial class Customer : ICollection
{
public int Count
{
get { return this.count; }
}
public bool IsSynchronized
{
get { return false; }
}
public object SyncRoot
{
get { return null; }
}
public void CopyTo(Array array, int index)
{
throw new NotImplementedException();
}
}
这个问题还有其他好的解决方案吗?