كيفية القيام بما يلي: استخدام المفهرس خصائص في برمجة توافق COM (البرمجة C# إرشادات)

تمت الفهرسة خصائص تحسين الطريقة في COM الذي يتم استهلاكه الخصائص التي تحتوي على المعلمات في البرمجة C#. تمت الفهرسة الخصائص للعمل مع غير ذلك الميزات المقدمة في ‏‫Visual C# 2010، مثل الوسيطات المسماة والاختيارية ونوع جديد ( ديناميكي ) و تضمين معلومات نوع ، لتحسين البرمجة Microsoft المكتب 2010 Suite.

في الإصدارات السابقة من C#، وظائف قابلة كـ الخصائص فقط إذا geth أسلوب كـ بدون معلمات و seth الأسلوب كـ واحد وواحد فقط بالقيمة معلمة. على الرغم من ذلك، ليس الجميع خصائص COM تفي بهذه القيود. ل مثال، قام Excel نطاق خاصية getأسلوب استرجاع قيمة يتطلب معلمة لاسم النطاق. في pكـt، بسبب تعذر الوصول إلى Rangeخاصية مباشرة، يجب عليك استخدام get_Rangeالأسلوب بدلاً من ذلك، كـ هو موضح في المثال التالي.

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

تمكن من الخصائص المفهرسة إلى كتابة ما يلي بدلاً من ذلك:

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

ملاحظة

يستخدم المثال السابق الميزة وسيطات اختيارية ، المقدمة في ‏‫Visual C# 2010، مما يتيح لك أيضا إلى حذف Type.Missing.

وبنفس الطريقة، إلى التعيين القيمة Valueخاصية النطاق كائن في ‏‫Visual C# 2008 والإصدارات السابقة له، الوسيطتين مطلوبة. واحد بتوفير وسيطة لمعلمة اختيارية والتي تحدد نوع القيمة النطاق. الآخر بتوفير القيمة Valueخاصية. قبل ‏‫Visual C# 2010, C# يسمح وسيطة واحدة فقط. ولذلك، بدلاً من استخدام أسلوب التعيين منتظمة، يجب عليك إلى أما باستخدام set_Valueأسلوب أو خاصية مختلفة، Value2. توضح الأمثلة التالية هذه التقنيات. كلاهما التعيين القيمة خلية A1 إلى Name.

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

تمكين الخصائص المفهرسة بكتابة ما يلي تعليمات برمجية بدلاً من ذلك.

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

لا يمكن إنشاء المفهرسة خصائص خاص بك. تدعم ميزة استهلاك الخصائص المفهرسة موجود فقط.

مثال

إظهار التعليمة البرمجية التالية مثال عن كاملة. لمزيد من المعلومات حول كيفية إعداد مشروع يصل إلى واجهة برمجة تطبيقات المكتب، راجع كيفية القيام بما يلي: الوصول إلى كائنات Office Interop باستخدام ميزات Visual #C 2010 (دليل برمجة C# ).

// 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";

        }
    }
}

راجع أيضًا:

المهام

كيفية القيام بما يلي: استخدام الوسيطات المسماة والاختيارية في برمجة المكتب (إرشادات برمجة C#)

كيفية القيام بما يلي: الوصول إلى كائنات Office Interop باستخدام ميزات Visual #C 2010 (دليل برمجة C# )

المرجع

dynamic (مرجع #C)

المبادئ

الوسيطات المسماة والوسيطات الاختيارية (دليل البرمجة لـ #C)

موارد أخرى

استخدام نوع الحيوي (C# "برمجة" إرشادات)

الإرشادات التفصيلية: مكتب برمجة (C# و Visual Basic)