Это может быть полезно для ленивой загрузки. Скажем, объект, о котором идет речь, хранится в базе данных, и вы не хотите его получать, если это вам не нужно. Если объект извлекается геттером, тогда внутренний объект может быть нулевым, пока кто-то его не попросит, тогда вы можете получить его при первом вызове getter.
У меня был класс базовой страницы в проект, который был передан мне, который загружал некоторые данные из нескольких различных вызовов веб-сервисов, но данные в этих вызовах веб-службы не всегда использовались на всех дочерних страницах. Веб-сервисы, для всех преимуществ, пионеры новых определений «медленные», поэтому вы не хотите делать вызов веб-службы, если вам это не нужно.
Я перешел из общедоступных полей в геттеры, и теперь геттеры проверяют кеш, и если его нет, вызовите веб-службу. Таким образом, с небольшой упаковкой было предотвращено множество вызовов веб-сервисов.
Таким образом, getter избавляет меня от попыток выяснить, на каждой дочерней странице, что мне нужно. Если мне это нужно, я вызываю геттер, и он найдет его для меня, если у меня его еще нет.
protected YourType _yourName = null;
public YourType YourName{
get
{
if (_yourName == null)
{
_yourName = new YourType();
return _yourName;
}
}
}
CIL (Common Intermediate Language) - это байтовый код, с которым компилируется ваш код C # или Visual Basic. Это «машинный код» механизма выполнения .NET.
CTS (Common Type System) - это представление типов (классов и структур) на скомпилированном уровне. В основном, это говорит о том, что все языки .NET будут использовать общий способ представления типов (классов и структур).
CLS (Common Language Specification) представляет собой набор ограничений для API и дополнительный набор требований на языках. Если библиотека CLS-совместима (т. Е. Придерживается всех ограничений), то любой CLS-совместимый язык сможет использовать этот API. И наоборот, язык, совместимый с CLS, гарантированно сможет использовать любую библиотеку, совместимую с CLS. Например, гарантируется поддержка CLS-совместимого языка для Int32, поэтому CLS гарантирует, что библиотекари могут использовать Int32 в своих API.