Вызов ASP.NET располагает на Странице/Средствах управления на странице, или я должен сделать это?

До Java 8

Мы могли бы использовать Arrays.toString(array) для печати одномерного массива и Arrays.deepToString(array) для многомерных массивов.

Java 8

Теперь у нас есть опция Stream и lambda для печати массива.

Печать одномерного массива:

public static void main(String[] args) {
    int[] intArray = new int[] {1, 2, 3, 4, 5};
    String[] strArray = new String[] {"John", "Mary", "Bob"};

    //Prior to Java 8
    System.out.println(Arrays.toString(intArray));
    System.out.println(Arrays.toString(strArray));

    // In Java 8 we have lambda expressions
    Arrays.stream(intArray).forEach(System.out::println);
    Arrays.stream(strArray).forEach(System.out::println);
}

Вывод:

[1, 2, 3, 4, 5]
[Джон, Мэри, Боб]
1
2
3
4
5
Джон
Мэри
Боб

Печать многомерного массива На всякий случай, если мы хотим напечатать многомерный массив, мы можем использовать Arrays.deepToString(array) as:

public static void main(String[] args) {
    int[][] int2DArray = new int[][] { {11, 12}, { 21, 22}, {31, 32, 33} };
    String[][] str2DArray = new String[][]{ {"John", "Bravo"} , {"Mary", "Lee"}, {"Bob", "Johnson"} };

    //Prior to Java 8
    System.out.println(Arrays.deepToString(int2DArray));
    System.out.println(Arrays.deepToString(str2DArray));

    // In Java 8 we have lambda expressions
    Arrays.stream(int2DArray).flatMapToInt(x -> Arrays.stream(x)).forEach(System.out::println);
    Arrays.stream(str2DArray).flatMap(x -> Arrays.stream(x)).forEach(System.out::println);
} 

Теперь необходимо отметить, что метод Arrays.stream(T[]), который в случае int[] возвращает нас Stream<int[]>, а затем метод flatMapToInt() отображает каждый элемент потока с содержимым отображенного потока, полученного путем применения предоставленной функции отображения к каждому элементу.

Вывод:

[[11, 12], [21, 22], [31, 32, 33]]
[[Джон, Браво], [Мэри, Ли], [Боб, Джонсон]]
11
12
21
22
31
32
33
Джон
Браво
Мэри
Ли
Боб
Джонсон

15
задан Henk Holterman 28 July 2009 в 08:48
поделиться

3 ответа

Это сделано за вас. Посмотрите на UnloadRecursive () из System.Web.UI.Control в Reflector, который вызывается ProcessRequestCleanup () .

8
ответ дан 1 December 2019 в 04:18
поделиться

В этой статье о Жизненный цикл страницы ASP.NET говорится, что:

«Выгрузка вызывается после того, как страница была полностью отрисована, отправлена ​​клиенту и готов к удалению. На этом этапе свойства страницы, такие как Response и Request, выгружаются, и выполняется любая очистка. "

Я бы сказал, что" любая очистка "означает удаление элементов управления и т. д. Я не могу представить, что разработчики платформы ASP.NET не обратили бы на это внимания, и никто бы этого не заметил.

2
ответ дан 1 December 2019 в 04:18
поделиться

Нет, вы не должны вызывать Dispose для элементов управления, это уже делается. Вы несете ответственность за другие объекты Disposable, которые вы создаете вне структуры Control (FileStreams и т. Д.).

Это следует из общего принципа .NET: страница является владельцем Controls и, следовательно, требуется для каскадного (явного) Dispose для них . Для фактического кода вам нужно будет отразить код для Web.UI.Control.

Страница является владельцем элементов управления и поэтому должна каскадировать (явное) Dispose для них. Для фактического кода вам нужно будет отразить код для Web.UI.Control.

Страница является владельцем элементов управления и поэтому должна каскадировать (явное) Dispose для них. Для фактического кода вам нужно будет отразить код для Web.UI.Control.

5
ответ дан 1 December 2019 в 04:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: