Как пояснялось в предыдущем разделе, с помощью модификатораpartialможно создать класс частичного типа. Начиная с версии 3.0, в C# появилась возможность использовать этот модификатор и для создания
Главная особенность частйчного метода заключается в том, что его реализация не требуется! Если частичный метод не реализуется в другой части класса или структуры, то все его вызовы молча игнорируются. Это дает возможность определить, но не востребовать дополнительные, хотя и не обязательные функции класса. Если эти функции не реализованы, то они просто игнорируются.
Ниже приведена расширенная версия предыдущей программы, в которой создается частичный методShow . Этот метод вызывается другим методом,ShowXY (). Ради удобства все части классаXYпредставлены в одном файле, но они могут быть распределены по отдельным фацлам, как было показано в предыдущем разделе.
// Продемонстрировать применение частичного метода.
using System;
partial class XY {
public XY(int a, int b) {
X = a;
Y = b;
}
// Объявить частичный метод, partial void Show;
}
partial class XY {
public int X { get; set; }
// Реализовать частичный метод, partial void Show {
Console.WriteLine("{0}, {1}", X, Y);
}
}
partial class XY {
public int Y { get; set; }
// Вызвать частичный метод, public void ShowXY {
Show;
}
}
class Test {
static void Main {
XY xy = new XY(1
}
}
Обратите внимание на то, что методShow объявляется в одной части классаXY,а реализуется в другой его части. В реализации этого метода выводятся значения координат X и Y. Это означает, что когда методShow () вызывается из методаShowXY ,то данный вызов действительно имеет конкретные последствия: вывод значений
координат X и Y. Но если закомментировать реализацию методаShow , то его вызов из методаShowXY ни к чему не приведет.
Частичным методам присущ ряд следующих ограничений. Они должны возвращать значение типа void. У них не может быть модификаторов доступа и они не могут быть виртуальными. В них нельзя также использовать параметры out.
Создание объектов динамического типа