Ваши статические классы и статические поля экземпляра совместно используются всеми запросами к приложению, и имеет то же время жизни как домен приложения. Поэтому необходимо быть осторожными при использовании статических экземпляров, так как у Вас могли бы быть проблемы синхронизации и т.п.. Также примите во внимание, что статические экземпляры не будут GC'ed, прежде чем пул приложений будет переработан, и поэтому все, на что ссылается статический экземпляр, не будет GC'ed. Это может привести к проблемам использования памяти.
, Если бы Вам нужен экземпляр с тем же временем жизни как запрос, я предложил бы использовать HttpContext.Current.Items
набор. Это дизайном, предназначенным, чтобы быть местом для хранения материала, в котором Вы нуждаетесь всюду по запросу. Для более хорошего дизайна и удобочитаемости, можно использовать Шаблон "одиночка", чтобы помочь Вам управлять этими объектами. Просто создайте Singleton-класс, который хранит его экземпляр в HttpContext.Current.Items
. (В моей общей библиотеке для ASP.NET у меня есть универсальный класс SingletonRequest с этой целью).
Вот однострочное решение, использующее reshape
и permute
:
C = 3; % Number of columns
R = 6; % Number of rows
newR = 2; % New number of rows
A = randi(10, [R C]); % 6-by-3 array of random integers
B = permute(reshape(A.', [C newR R/newR]), [2 1 3]);
Это, конечно, требует, чтобы newR
делился равномерно в R
.