Необязательные параметры в решениях Office
Многие методы в объектных моделях приложений Microsoft Office принимают необязательные параметры. При использовании Visual Basic для разработки решения Office в Visual Studio значение для необязательных параметров передавать не нужно, так как для каждого отсутствующего параметра автоматически используется значение по умолчанию. В большинстве случаев можно также опустить необязательные параметры в проектах Visual C#. Однако нельзя исключить необязательные параметры ThisDocument
ссылок класса в проектах Word на уровне документа.
Область применения. Сведения в этом разделе относятся к проектам уровня документа и проектам надстроек VSTO. См. сведения о функциях, доступных по Приложение Office и типу проекта.
Дополнительные сведения о работе с необязательными параметрами в проектах Visual C# и Visual Basic см. в разделе Именованные и необязательные аргументы (руководство по программированию на C#) и необязательные параметры (Visual Basic).
Примечание.
В более ранних версиях Visual Studio в проектах Visual C# необходимо было передавать значение для каждого необязательного параметра. Для удобства эти проекты содержат глобальную переменную с именем missing
, которую можно передавать в необязательный параметр, если для него нужно использовать значение по умолчанию. Проекты Visual C# для Office в Visual Studio по-прежнему включают missing
переменную, но обычно ее не нужно использовать при разработке решений Office в Visual Studio 2013, за исключением случаев вызова методов с необязательными параметрами ссылок в классе в ThisDocument
проектах на уровне документов для Word.
Пример в Excel
Метод CheckSpelling имеет много необязательных параметров. Как показано в следующем примере кода, для одних параметров можно указать значения, а для других — принять значение по умолчанию. В этом примере требуется проект на уровне документа с классом листа под именем Sheet1
.
Пример в Word
Метод Execute имеет много необязательных параметров. Как показано в следующем примере кода, для одних параметров можно указать значения, а для других — принять значение по умолчанию.
Word.Range documentRange = this.Application.ActiveDocument.Content;
documentRange.Find.ClearFormatting();
documentRange.Find.Execute(FindText: "blue", ReplaceWith: "red", Replace: Word.WdReplace.wdReplaceAll);
Использование необязательных параметров методов в классе ThisDocument в проектах уровня документа Visual C# для Word
Объектная модель Word содержит множество методов с необязательными параметрами ссылок , принимаюющими Object значения. Однако нельзя исключить необязательные параметры ссылок методов созданного ThisDocument
класса в проектах уровня документа Visual C# для Word. Visual C# позволяет не указывать необязательные параметры ссылок только для методов интерфейсов, а не классов. Например, следующий пример кода не компилируется, так как не удается исключить необязательные параметры ссылок CheckSpelling метода ThisDocument
класса.
Globals.ThisDocument.CheckSpelling(ignoreUppercase: true);
При вызове методов класса ThisDocument
следуйте приведенным ниже рекомендациям:
Чтобы принять значение по умолчанию необязательного параметра ссылок , передайте
missing
переменную в параметр. Переменнаяmissing
автоматически определяется в проектах Visual C# для Office, и ей назначается значение Missing в созданном коде проекта.Чтобы указать собственное значение для необязательного параметра ссылок , объявите объект, которому нужно указать значение, а затем передайте объект параметру.
В следующем примере кода показано, как вызвать CheckSpelling метод, указав значение для параметра ignoreUppercase и принимая значение по умолчанию для других параметров.
object ignoreUppercase = true; Globals.ThisDocument.CheckSpelling( ref missing, ref ignoreUppercase, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
Если вы хотите написать код, который пропускает необязательные параметры ссылок метода в
ThisDocument
классе, можно также вызвать тот же метод для Document объекта InnerObject , возвращаемого свойством, и опустить параметры из этого метода. Это можно сделать, так как Document — интерфейс, а не класс.Globals.ThisDocument.InnerObject.CheckSpelling(IgnoreUppercase: true);
Дополнительные сведения о параметрах значений и ссылочных типов см. в разделе "Сквозные аргументы по значению" и по ссылке (Visual Basic) (для Visual Basic) и параметров pass (руководство по программированию на C#).