Поделиться через


Общие сведения о необязательных параметрах в решениях Office

Обновлен: Ноябрь 2007

Многие из методов в объектной модели приложений Microsoft Office принимают необязательные параметры. Необязательными эти параметры являются только при вызове метода с помощью Visual Basic. При использовании C# при разработке приложения Microsoft Office необходимо передавать значения всех параметров.

Различия необязательных параметров в Visual Basic и Visual C#

При использовании Visual Basic для разработки приложения Microsoft Office передавать все параметры необязательно, так как автоматически для каждого опущенного параметра используются значения по умолчанию. Однако в C# необязательные параметры не поддерживаются, поэтому методу надо передавать значения всех параметров.

В проекты Visual Studio Tools for Office включена глобальная переменная с именем missing, назначенная значению Type.Missing в сгенерированном коде. Можно передавать эту переменную, подразумевая использование значение по умолчанию для каждого необязательного параметра, принимающего ссылочный тип, такой как Object. Для необязательных параметров, принимающих типовое значение, необходимо передавать фактическое значение по умолчанию. Дополнительные сведения см. в разделе о параметрах типов значений и ссылочных типов см. в разделах Передача типовых значений необязательным параметрам в Visual C#.

Пример в Excel

Метод Worksheet.CheckSpelling принимает следующие необязательные параметры, принимающие ссылочные типы.

  • CustomDictionary. Указывает, следует ли использовать пользовательский словарь, если в основном словаре слово не найдено.

  • IgnoreUppercase. Указывает, следует ли игнорировать верхний регистр.

  • AlwaysSuggest. Указывает, должен ли Excel отображать список предлагаемых альтернативных вариантов, если найдено неверное правописание.

  • SpellLang. Указывает используемый язык словаря.

Для этих параметров можно принимать значения по умолчанию, как показано в следующем примере кода.

Globals.Sheet1.CheckSpelling()
Globals.Sheet1.CheckSpelling(missing, missing, missing, missing);

Пример в Word

Вызов методов Microsoft Office Word из C#, в общем, более сложен, чем вызов методов для других приложений Office, так как необходимо передавать все необязательные параметры ссылкой.

Например, метод Document.CheckSpelling принимает следующие необязательные параметры для проверки орфографии в документе Word:

  • CustomDictionary. Имя файла пользовательского словаря.

  • IgnoreUppercase. Указывает, следует ли игнорировать верхний регистр.

  • AlwaysSuggest. Указывает, должен ли Word отображать список предлагаемых альтернативных вариантов, если найдено неверное правописание.

  • CustomDictionary2 – CustomDictionary10. Имена файлов дополнительных пользовательских словарей. Можно указать до девяти дополнительных словарей.

Для этих параметров можно принимать значения по умолчанию, как показано в следующем примере кода.

Me.CheckSpelling()
this.CheckSpelling(
    ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, 
    ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

Передача типовых значений необязательным параметрам в Visual C#

В Visual C# для необязательных параметров, принимающих ссылочные типы, можно передавать только глобальную переменную missing. Для необязательных параметров, принимающих типовое значение, необходимо определить и передать фактическое значение по умолчанию.

Например, метод Sort класса NamedRange принимает большое число перечислимых значений в качестве параметров, такие как Microsoft.Office.Interop.Excel.XlSortOrder. Так как это типовое значение, необходимо указать одно из значений XlSortOrder, а не передать глобальную переменную missing.

Дополнительные сведения о параметрах типов значений и ссылочных типов см. в разделах Передача аргументов по значению или по ссылке (для Visual Basic) и Передача параметров (Руководство по программированию в C#).

См. также

Основные понятия

Разработка решений Office

Управляемый код и программирование приложений Office в Visual Studio

Написание кода в решениях Office