Sdílet prostřednictvím


Jak: Použití indexovaných vlastností v modelu COM Interop programování (Příručka programování C#)

Indexovat vlastnosti zlepšit fungování v COM, které jsou spotřebovány vlastnosti, které mají parametry v programování C#.Indexovat vlastnosti práce spolu s dalšími funkcemi, zavedené v aplikaci Visual C# 2010, jako například pojmenované a volitelné argumenty, nový typ (dynamické), a informace vložené typu, zvýšit programování Microsoft Office.

V dřívějších verzích jazyka C#, metody jsou přístupné jako vlastnosti pouze tehdy, pokud get metoda nemá žádné parametry a set metoda má pouze jednu hodnotu parametru.Ne všechny vlastnosti modelu COM však splňovat tato omezení.Například aplikace Excel oblast vlastnost má get přístupový objekt, který vyžaduje parametr název oblasti.V minulosti protože není přístupný Range vlastnost přímo, bylo nutné použít get_Range metoda místo toho, jak ukazuje následující příklad.

// Visual C# 2008 and earlier.
var excelApp = new Excel.Application();
// . . .
Excel.Range targetRange = excelApp.get_Range("A1", Type.Missing);

Indexované vlastnosti umožňují zápis následující místo:

// Visual C# 2010.
var excelApp = new Excel.Application();
// . . .
Excel.Range targetRange = excelApp.Range["A1"];

[!POZNÁMKA]

Předchozí příklad používá také volitelné argumenty funkce v aplikaci Visual C# 2010, které umožňuje vynechat Type.Missing.

Podobně nastavte hodnotu Value vlastnost rozsah objektu, Visual C# 2008 a starší, jsou požadovány dva argumenty.Jeden dodává argument pro volitelný parametr, který určuje typ hodnotu rozsahu.Druhá hodnota pro dodávky Value vlastnost.Před Visual C# 2010 C# povolen pouze jeden argument.Proto namísto použití metody nastavit pravidelné, bylo buď použití set_Value metoda nebo jiné vlastnosti hodnota2.Následující příklady ilustrují tyto techniky.Jak nastavit hodnotu buňky A1 Name.

// Visual C# 2008.
targetRange.set_Value(Type.Missing, "Name");
// Or
targetRange.Value2 = "Name";

Indexovaných vlastností lze místo toho napsat následující kód.

// Visual C# 2010.
targetRange.Value = "Name";

Nelze vytvořit indexovaných vlastností.Tato funkce podporuje pouze spotřeby existující indexovaných vlastností.

Příklad

Následující kód zobrazuje kompletní příklad.Další informace o způsobu nastavení projektu, který má přístup k rozhraní API Office naleznete v Jak: Office Access Interop objektů pomocí aplikace Visual C# 2010 funkcí (C# Příručka programování).

// You must add a reference to Microsoft.Office.Interop.Excel to run 
// this example.
using System;
using Excel = Microsoft.Office.Interop.Excel;

namespace IndexedProperties
{
    class Program
    {
        static void Main(string[] args)
        {
            CSharp2010();
            //CSharp2008();
        }

        static void CSharp2010()
        {
            var excelApp = new Excel.Application();
            excelApp.Workbooks.Add();
            excelApp.Visible = true;

            Excel.Range targetRange = excelApp.Range["A1"];
            targetRange.Value = "Name";
        }

        static void CSharp2008()
        {
            var excelApp = new Excel.Application();
            excelApp.Workbooks.Add(Type.Missing);
            excelApp.Visible = true;

            Excel.Range targetRange = excelApp.get_Range("A1", Type.Missing);
            targetRange.set_Value(Type.Missing, "Name");
            // Or
            //targetRange.Value2 = "Name";

        }
    }
}

Viz také

Úkoly

Jak: použití pojmenovaných a volitelné argumenty v Office programování (Příručka programování C#)

Jak: Office Access Interop objektů pomocí aplikace Visual C# 2010 funkcí (C# Příručka programování)

Postupy: Programování pro Office (C# a Visual Basic)

Referenční dokumentace

dynamické (C#-Reference)

Koncepty

Pojmenované a volitelné argumenty (Příručka programování C#)

Další zdroje

Pomocí dynamického typu (C# program televize)