В этой строке кода интервал ячеек электронной таблицы получается при вызове методаget Range , для чего достаточно указать начало и конец интервала. А значения задаются при вызове методаset_Value , для чего достаточно указать тип (что не обязательно) и конкретное значение. В этих методах используются свойстваRangeиValue,поскольку у обоих свойств имеются два параметра. Поэтому в прошлом к ним нельзя было обращаться как к свойствам, но приходилось пользоваться упомянутыми выше методами. Кроме того, аргументType .Missingслужил в качестве обычного заполнителя, который передавался для указания на тип, используемый по умолчанию. Но, начиная с версии C# 4.0, появилась возможно переписать приведенный выше оператор, приведя его к следующей более удобной форме.
myXLapp.Range["Cl", "СЗ"].Value = "OK";
В этом случае значения интервала ячеек электронной таблицы передаются с использованием синтаксиса индексаторов, а заполнительType .Missingуже не нужен, поскольку данный параметр теперь задается по умолчанию.
Как правило, при определении в методе параметраrefприходится передавать ссылку на этот параметр. Но, работая с моделью СОМ, можно передавать параметруrefзначение, не заключая его предварительно в оболочку объекта. Дело в том, что компилятор будет автоматически создавать временный аргумент, который уже заключен в оболочку объекта, и поэтому указывать параметрrefв списке аргументов уже не нужно.
Дружественные сборки
Одну сборку можно сделать
Разные ключевые слова
В заключение этой главы в частности и всей части I вообще будут вкратце представлены ключевые слова, определенные в C# и не упоминавшиеся в предыдущих главах данной книги.
Ключевое слов lock
Ключевое словоlockиспользуется при создании многопоточных программ. Подробнее оно рассматривается в главе 23, где речь пойдет о многопоточном программировании. Но ради полноты изложения ниже приведено краткое описание этого ключевого слова.