sizeof(array)
реализован полностью компилятором C. К тому времени, когда программа связана, что похоже sizeof()
, вызов Вам был преобразован в константу.
Пример: когда Вы компилируете этот код C:
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char** argv) {
int a[33];
printf("%d\n", sizeof(a));
}
Вы добираетесь
.file "sz.c"
.section .rodata
.LC0:
.string "%d\n"
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $164, %esp
movl $132, 4(%esp)
movl $.LC0, (%esp)
call printf
addl $164, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.ident "GCC: (GNU) 4.1.2 (Gentoo 4.1.2 p1.1)"
.section .note.GNU-stack,"",@progbits
$132
в середине, размер массива, 132 = 4 * 33. Заметьте, что нет никакого call sizeof
инструкция - в отличие от этого printf
, который является реальной функцией.
После почти года совместной работы с MVC я могу подтвердить, что мне ни разу не требовался код программной части для представлений. Если вы используете программный код, вы, вероятно, все еще думаете о WebForms. Отбросьте его.
Представления должны быть там, чтобы просто отображать данные модели. Простые решения, например, какой класс CSS применить, можно принимать непосредственно в представлении в тегах сервера. Более сложные решения должны приниматься контроллером или бизнес-логикой.
I prefer strongly typed viewdata for my asp.net mvc views for various reasons
This can still be done ofcourse. NerdDinner FormviewModels page 6 Пользуюсь, работает отлично. Были некоторые проблемы, которые вы можете найти в моих двух вопросах здесь и здесь .
Как было сказано выше, я не понимаю, почему вы хотите использовать программный код. Если вы этого хотите, я рекомендую вам прочитать общую информацию о структуре MVC и о том, для чего нужны представления.
Наличие выделенного кода для представлений противоречит одной из целей инфраструктуры MVC.
Представление должно быть максимально простым и фокусироваться только на представлении, позволяя контроллеру или расширениям обрабатывать все бизнес-логика.
Те, у кого есть комбинация ViewState, должны устранить необходимость в выделенном коде.
В архитектуре MVC нет необходимости в коде, как это было с веб-формами.
Вся архитектура MVC построена на контроллере, контролирующем материал, а не на событиях веб-управления, творит чудеса.
Лично я только начинаю знакомиться с темной стороной MVC, но мне нравится то, что я вижу здесь сейчас.
Вы можете легко разместить контент в своем представлении с помощью «return View (item)» в ваших действиях -> where item могут быть строго типизированными данными и легко проверить их в вашей модели. (что прекрасно, поскольку ошибки ввода будут отображаться в представлении)