ASP.NET MVC Исключает Пространства имен из Нового Выпадающего меню

Когда вы добавляете новое представление о проекте ASP.NET MVC, вы можете сильно напечатать представление, выбрав, с каким образцовым классом оно должно работать в диалоговом окне. Проблема заключается в том, что в этом раскрывающемся меню содержатся все классы и интерфейсы из всех проектов и dll, на которые имеются ссылки. Итак, я вижу все классы Ninject, все интерфейсы для моих услуг и т.д. в этом меню. Есть ли способ указать, какие пространства имен включить или список пространств имен исключить из этого раскрывающегося меню?

Я понимаю, что это не очень важно, и вы можете просто начать вводить имя класса в поле, и он будет подтягивать нужное. Я просто подумал, что если бы было место для этого, было бы неплохо. Если нет, ничего страшного, но я подумал спросить.:)

-121--1530000- Как работают связанные задания? Цитата из чего-то: > > > x = y = somefunction () - это то же самое, что и > > > y = somefunction () > > > x = y Вопрос: Является ли x = y = somefunction () таким же, как x = somefunction ()...

Цитата из чего-то:

>>> x = y = somefunction()

совпадает с

>>> y = somefunction()
>>> x = y

Вопрос: Является ли

x = y = somefunction()

таким же, как

x = somefunction()
y = somefunction()

?

Исходя из моего понимания, они должны быть одинаковыми, потому что somfunction может возвращать только одно значение.

29
задан agf 29 September 2011 в 18:37
поделиться

1 ответ

Это привело бы к тому же , только , если функция не имеет побочных эффектов и возвращает синглтон детерминистическим способом (с учетом ее входных данных).

Например:

def is_computer_on():
    return True

x = y = is_computer_on()

или

def get_that_constant():
    return some_immutable_global_constant

Обратите внимание, что результат будет таким же, но процесс достижения результата не будет:

def slow_is_computer_on():
    sleep(10)
    return True

Содержание переменных x и y будет одинаковым, но инструкция x = y = slow_is_computer_on() будет длиться 10 секунд, а ее аналог x = slow_is_computer_on() ; y = slow_is_computer_on() будет длиться 20 секунд.

Было бы почти то же самое, если бы функция не имела побочных эффектов и возвращала неизменяемость детерминированным образом (с учетом своих входных данных).

Например:

def count_three(i):
    return (i+1, i+2, i+3)

x = y = count_three(42)

Обратите внимание, что применяются те же уловы, которые описаны в предыдущем разделе.

Почему я говорю почти ? Из-за этого:

x = y = count_three(42)
x is y  # <- is True

x = count_three(42)
y = count_three(42)
x is y  # <- is False

Хорошо, использование is является чем-то странным, но это показывает, что результат не тот. Это важно для изменчивого случая:

Это опасно и может привести к ошибкам, если функция возвращает изменяемый

На этот вопрос также был дан ответ. Для полноты картины я повторю аргумент:

def mutable_count_three(i):
    return [i+1, i+2, i+3]

x = y = mutable_count_three(i)

Поскольку в этом сценарии x и y являются одним и тем же объектом, выполнение операции, подобной x.append(42), означало бы, что оба x и y содержит ссылку на список, который теперь имеет 4 элемента.

Это не было бы то же самое, если бы функция имела побочные эффекты

Рассматривая побочный эффект печати (который я считаю допустимым, но вместо этого можно использовать другие примеры):

def is_computer_on_with_side_effect():
    print "Hello world, I have been called!"
    return True

x = y = is_computer_on_with_side_effect()  # One print

# The following are *two* prints:
x = is_computer_on_with_side_effect()
y = is_computer_on_with_side_effect()

Вместо печати это может быть более сложный или более тонкий побочный эффект, но факт остается фактом: метод вызывается один или два раза, и это может привести к другому поведению.

Это не было бы то же самое, если бы функция была недетерминированной, учитывая ее входные данные.

Может быть, простой случайный метод:

def throw_dice():
    # This is a 2d6 throw:
    return random.randint(1,6) + random.randint(1,6)

x = y = throw_dice()  # x and y will have the same value

# The following may lead to different values:
x = throw_dice()
y = throw_dice()

Но, вещи, связанные с часами, глобальными счетчиками, Системный материал и т. д. чувствителен к тому, чтобы быть недетерминированным, учитывая входные данные, и в этих случаях значения x и y могут отличаться. [+1139]

5
ответ дан 28 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

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