В настоящее время я пишу о динамической типизации, и я приведу пример взаимодействия Excel. Раньше я почти ничего не делал в офисе, и это видно. Учебник MSDN Office Interop для С# 4 использует интерфейс _Worksheet, но также интерфейс Worksheet. Я не знаю, в чем разница.
В моем абсурдном простом демонстрационном приложении (показанном ниже) работает нормально - но если лучшая практика диктует тот или иной, я бы предпочел использовать его соответствующим образом.
using System;
using System.Linq;
using Excel = Microsoft.Office.Interop.Excel;
class DynamicExcel
{
    static void Main()
    {
        var app = new Excel.Application { Visible = true };
        app.Workbooks.Add();
        // Can use Excel._Worksheet instead here. Which is better?
        Excel.Worksheet workSheet = app.ActiveSheet;
        Excel.Range start = workSheet.Cells[1, 1];
        Excel.Range end = workSheet.Cells[1, 20];
        workSheet.get_Range(start, end).Value2 = Enumerable.Range(1, 20)
                                                           .ToArray();
    }
}
Я пытаюсь избежать глубокого погружения в совместимость COM или Office, просто выделив новые возможности С# 4, но я не хочу ничего делать, действительно немой.
(Возможно, что-то действительно, действительно немое в коде выше, и в этом случае, пожалуйста, дайте мне знать. Использование отдельных стартовых/конечных ячеек вместо "A1: T1" преднамеренно - проще видеть, что это действительно, диапазон из 20 клеток. Все остальное, вероятно, случайное.)
Итак, следует ли использовать _Worksheet или Worksheet и почему?
