Ответ 1
Основное различие заключается в том, что метод Add()
пытается вставить кеш без перезаписи существующей записи кэша с тем же ключом.
Пока метод Set()
перезапишет существующую запись кэша с тем же ключом. [Однако Если ключ для элемента не существует, вставка будет выполняться как новая запись кэша].
Выше была разница в терминах их функциональности.
Синтаксическая разница:
Одна существенная синтаксическая разница заключается в том, что метод Add()
возвращает логическое значение, которое является true
, если вставка выполнена успешно, или false
, если в кэше уже есть запись с тем же ключом, что и элемент.
Метод Set()
имеет возвращаемый тип void
.
Последняя точка, в которой внутренняя реализация метода Add()
фактически вызывает соответствующую версию AddOrGetExisting()
метод.
public virtual bool Add(CacheItem item, CacheItemPolicy policy)
{
return this.AddOrGetExisting(item, policy) == null;
}