Как вы защищаете свои приложения от переполнения буфера? - C#
Формулировка задачи:
Как вы защищаете свои приложения от переполнения буфера? Нужно ли для этого усложнять код?
Решение задачи: «Как вы защищаете свои приложения от переполнения буфера?»
textual
Листинг программы
/// <summary> /// Безмятежный массив, которому пофиг на выход за границы. /// </summary> // TODO: Реализовать IEnumerable<T>, ICollection<T> и тд public class SerenityArray<T> where T: class { struct Errno { public T LastValue { set; get; } public int LastIndex { set; get; } } private T[] _Data; public Errno LastIndexError { set; get; } public int Capacity { private set; get; } public T this[int index] { set { if (index < 0 || index >= Capacity) { LastIndexError = new Errno { LastValue = value, LastIndex = index }; return; } _Data[index] = value; } get { if (index < 0 || index >= Capacity) { LastIndexError = new Errno { LastValue = value, LastIndex = index }; // Будьте внимательны! Если забыть проверить LastIndexError // в вызывающем коде это может привести к трудноуловимым ошибкам! return null; } return _Data[index]; } } public SerenityArray<T>(int capacity) { // TODO: Проверка параметра capacity _Data = new T[capacity]; Capacity = capacity; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д