Новинки языка C#.NET - Разделение классов

ОГЛАВЛЕНИЕ

 

Разделение классов

Разделение классов (partial types) позволяет разбивать код класса на несколько различных частей. Например, мы имеем класс User:

public class User
{
private int mInt;
private long mLong;
private string mString;
private bool mBool;
public int MyInt{
get{return this.mInt;}
set{this.mInt = value;}
}
}

Мы можем разбить его на несколько частей используя ключевое слово partial:

public partial class User
{
// здесь помещается генерируемый код
private int mInt;
private long mLong;
private string mString;
private bool mBool;
}
public partial class User
{
// здесь помещается код, написанный вручную
public int MyInt{
get{return this.mInt;}
set{this.mInt = value;}
}
}

Для компилятора эти два способа описания класса равнозначны. Тогда зачем нужна такая возможность разделять класс? Прежде всего для отделения кода создаваемого генератором кода и разработчиком, как например это сделано для поддержки дизайнера форма в Visual Studio 2005. Если вы обратите внимание, то заметите, что код располагающий элементы на форме по умолчанию скрыт и отделен от код написанного вами как раз с использованием ключевого слова partial.

Также подобная возможность может быть использована для разделения функций класса по нескольким файлам, что позволит одновременно работать с разными частями класса нескольким разработчикам.