Gewusst wie: Verwenden von benannten und optionalen Argumenten in der Office-Programmierung (C#-Programmierhandbuch)How to: Use Named and Optional Arguments in Office Programming (C# Programming Guide)

Benannte und optionale Argumente, die in C# 4 eingeführt wurden, optimieren die Zweckmäßigkeit, die Flexibilität und die Lesbarkeit in der C#-Programmierung.Named arguments and optional arguments, introduced in C# 4, enhance convenience, flexibility, and readability in C# programming. Diese Funktionen erleichtern zusätzlich den Zugriff auf COM-Schnittstellen wie etwa die Automatisierungs-APIs in Microsoft Office.In addition, these features greatly facilitate access to COM interfaces such as the Microsoft Office automation APIs.

In folgendem Beispiel hat die Methode ConvertToTable sechzehn Parameter, die Eigenschaften einer Tabelle repräsentieren, wie z.B. die Zeilen- und Spaltenanzahl, das Format, die Rahmen, Schriftarten und Farben.In the following example, method ConvertToTable has sixteen parameters that represent characteristics of a table, such as number of columns and rows, formatting, borders, fonts, and colors. Alle sechzehn Parameter sind optional, weil Sie oftmals keine bestimmten Werte für sie festlegen möchten.All sixteen parameters are optional, because most of the time you do not want to specify particular values for all of them. Ohne benannte und optionale Argumente muss aber trotzdem ein Wert oder Platzhalterwert für jeden Parameter angegeben werden.However, without named and optional arguments, a value or a placeholder value has to be provided for each parameter. Mit benannten und optionalen Argumenten geben Sie nur für die Parameter Werte an, die für Ihr Projekt erforderlich sind.With named and optional arguments, you specify values only for the parameters that are required for your project.

Microsoft Office Word muss auf Ihrem Computer installiert sein, damit Sie diesen Vorgang abschließen können.You must have Microsoft Office Word installed on your computer to complete these procedures.

Hinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig.The Visual Studio edition that you have and the settings that you use determine these elements. Weitere Informationen finden Sie unter Personalisieren der IDE.For more information, see Personalizing the IDE.

So erstellen Sie eine KonsolenanwendungTo create a new console application

  1. Starten Sie Visual Studio.Start Visual Studio.

  2. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.On the File menu, point to New, and then click Project.

  3. Erweitern Sie im Bereich Templates Categories (Vorlagenkategorien) den Eintrag Visual C#, und klicken Sie dann auf Windows.In the Templates Categories pane, expand Visual C#, and then click Windows.

  4. Sehen Sie am oberen Rand des Bereichs Vorlagen nach, um sicherzustellen, dass .NET Framework 4 im Feld Zielframework angezeigt wird.Look in the top of the Templates pane to make sure that .NET Framework 4 appears in the Target Framework box.

  5. Klicken Sie im Bereich Vorlagen auf Konsolenanwendung.In the Templates pane, click Console Application.

  6. Geben Sie einen Namen für das Projekt im Feld Name ein.Type a name for your project in the Name field.

  7. Klicken Sie auf OK.Click OK.

    Das neue Projekt wird im Projektmappen-Explorer angezeigt.The new project appears in Solution Explorer.

So fügen Sie einen Verweis hinzuTo add a reference

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen, und klicken Sie dann auf Verweis hinzufügen.In Solution Explorer, right-click your project's name and then click Add Reference. Das Dialogfeld Verweis hinzufügen wird angezeigt.The Add Reference dialog box appears.

  2. Wählen Sie auf der Seite .NET Microsoft.Office.Interop.Word in der Liste Komponentenname aus.On the .NET page, select Microsoft.Office.Interop.Word in the Component Name list.

  3. Klicken Sie auf OK.Click OK.

So fügen Sie erforderliche using-Anweisungen hinzuTo add necessary using directives

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei Program.cs und dann auf Code anzeigen.In Solution Explorer, right-click the Program.cs file and then click View Code.

  2. Fügen Sie am Anfang der Codedatei die folgenden using-Direktiven hinzu.Add the following using directives to the top of the code file.

    using Word = Microsoft.Office.Interop.Word;
    

So zeigen Sie Text in einem Word-Dokument anTo display text in a Word document

  1. Fügen Sie in der Klasse Program in Program.cs die folgende Methode hinzu, um eine Word-Anwendung und ein Word-Dokument zu erstellen.In the Program class in Program.cs, add the following method to create a Word application and a Word document. Die Methode Hinzufügen verfügt über vier optionale Parameter.The Add method has four optional parameters. In diesem Beispiel werden ihre Standardwerte verwendet.This example uses their default values. Deshalb sind in der aufrufenden Anweisung keine Argumente erforderlich.Therefore, no arguments are necessary in the calling statement.

    static void DisplayInWord()
    {
        var wordApp = new Word.Application();
        wordApp.Visible = true;
        // docs is a collection of all the Document objects currently 
        // open in Word.
        Word.Documents docs = wordApp.Documents;
    
        // Add a document to the collection and name it doc. 
        Word.Document doc = docs.Add();
    }
    
  2. Fügen Sie den folgenden Code am Ende der Methode hinzu, um zu definieren, wo der Text im Dokument angezeigt werden und um welchen Text es sich dabei handeln soll.Add the following code at the end of the method to define where to display text in the document, and what text to display.

    // Define a range, a contiguous area in the document, by specifying
    // a starting and ending character position. Currently, the document
    // is empty.
    Word.Range range = doc.Range(0, 0);
    
    // Use the InsertAfter method to insert a string at the end of the
    // current range.
    range.InsertAfter("Testing, testing, testing. . .");
    

So führen Sie die Anwendung ausTo run the application

  1. Fügen Sie die folgende Anweisung in Main hinzu.Add the following statement to Main.

    DisplayInWord();
    
  2. Drücken Sie STRG+F5, um das Projekt auszuführen.Press CTRL+F5 to run the project. Ein Word-Dokument mit dem angegebenen Text wird angezeigt.A Word document appears that contains the specified text.

So ändern Sie Text in eine TabelleTo change the text to a table

  1. Verwenden Sie die ConvertToTable-Methode, um den Text in eine Tabelle einzuschließen.Use the ConvertToTable method to enclose the text in a table. Die Methode verfügt über sechzehn optionale Parameter.The method has sixteen optional parameters. IntelliSense schließt optionale Parameter in Klammern ein, wie in folgender Abbildung veranschaulicht.IntelliSense encloses optional parameters in brackets, as shown in the following illustration.

    Liste der Parameter für die ConvertToTable-MethodeList of parameters for ConvertToTable method.
    ConvertToTable-ParameterConvertToTable parameters

    Benannte und optionale Argumente ermöglichen es Ihnen, nur Werte für die Parameter anzugeben, die Sie auch ändern möchten.Named and optional arguments enable you to specify values for only the parameters that you want to change. Fügen Sie den folgenden Code am Ende der DisplayInWord-Methode hinzu, um eine einfache Tabelle zu erstellen.Add the following code to the end of method DisplayInWord to create a simple table. Das Argument gibt an, dass die Kommas in der Textzeichenfolge in range die Zelle der Tabelle trennen.The argument specifies that the commas in the text string in range separate the cells of the table.

    // Convert to a simple table. The table will have a single row with
    // three columns.
    range.ConvertToTable(Separator: ",");
    

    In früheren Versionen von C# erfordert der Aufruf an ConvertToTable ein Verweisargument für jeden Parameter, wie in folgendem Codebeispiel gezeigt.In earlier versions of C#, the call to ConvertToTable requires a reference argument for each parameter, as shown in the following code.

    // Call to ConvertToTable in Visual C# 2008 or earlier. This code
    // is not part of the solution.
    var missing = Type.Missing;
    object separator = ",";
    range.ConvertToTable(ref separator, ref missing, ref missing,
        ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref missing, ref missing,
        ref missing);
    
  2. Drücken Sie STRG+F5, um das Projekt auszuführen.Press CTRL+F5 to run the project.

So können Sie sich auch an anderen Parametern versuchenTo experiment with other parameters

  1. Um die Tabelle so zu ändern, dass sie nur noch eine Spalte und drei Zeilen hat, ersetzen Sie die letzte Zeile in DisplayInWord durch folgende Anweisung, und geben Sie dann STRG+F5 ein.To change the table so that it has one column and three rows, replace the last line in DisplayInWord with the following statement and then type CTRL+F5.

    range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);
    
  2. Um ein vordefiniertes Format für eine Tabelle anzugeben, ersetzen Sie die letzte Zeile in DisplayInWord durch folgende Anweisung, und geben Sie dann STRG+F5 ein.To specify a predefined format for the table, replace the last line in DisplayInWord with the following statement and then type CTRL+F5. Das Format kann jede der WdTableFormat-Konstanten sein.The format can be any of the WdTableFormat constants.

    range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
        Format: Word.WdTableFormat.wdTableFormatElegant);
    

BeispielExample

Der folgende Code enthält das vollständige Beispiel.The following code includes the full example.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word = Microsoft.Office.Interop.Word;


namespace OfficeHowTo
{
    class WordProgram
    {
        static void Main(string[] args)
        {
            DisplayInWord();
        }

        static void DisplayInWord()
        {
            var wordApp = new Word.Application();
            wordApp.Visible = true;
            // docs is a collection of all the Document objects currently 
            // open in Word.
            Word.Documents docs = wordApp.Documents;

            // Add a document to the collection and name it doc. 
            Word.Document doc = docs.Add();

            // Define a range, a contiguous area in the document, by specifying
            // a starting and ending character position. Currently, the document
            // is empty.
            Word.Range range = doc.Range(0, 0);

            // Use the InsertAfter method to insert a string at the end of the
            // current range.
            range.InsertAfter("Testing, testing, testing. . .");

            // You can comment out any or all of the following statements to
            // see the effect of each one in the Word document.

            // Next, use the ConvertToTable method to put the text into a table. 
            // The method has 16 optional parameters. You only have to specify
            // values for those you want to change.

            // Convert to a simple table. The table will have a single row with
            // three columns.
            range.ConvertToTable(Separator: ",");

            // Change to a single column with three rows..
            range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);

            // Format the table.
            range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
                Format: Word.WdTableFormat.wdTableFormatElegant);
        }
    }
}

Siehe auchSee Also

Benannte und optionale ArgumenteNamed and Optional Arguments