Согласно правилу SA1201 в StyleCop элементы в классе должны отображаться в правильном порядке.
Порядок следующий:Интерфейс и частичные классы
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();
}
}
Есть ли другие хорошие решения этой проблемы?
Я думаю, что в вашем параграфе 2 вы говорите о явных (не подразумеваемых) реализациях - возможно, опечатке? –
Согласен, я думаю, что еще хуже разбить класс. Частичные классы действительно существуют как инструмент для IDE (например, VS с ASP.NET-страницами и кодом). –
@ Кевин: Да, второй абзац был замешан, спасибо! –