Общие сведения о необязательных параметрах в решениях 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 в Visual Studio