Visual Studio 2008 - Находит в файлах: списки все дважды

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

Если вы хотите что-то изменить, вы должны передать его адрес и изменить значение с указанием , например:

func main() {
    var x int
    fmt.Println("before", x)
    set(&x)
    fmt.Println("after", x)
}

func set(i *int) {
    *i = 2
}

Выходы (попробуйте на Перейти Детская площадка ):

before 0
after 2

То же самое относится и к переменным-указателям: если вы хотите изменить переменную-указатель, вам снова нужно передать ее адрес и изменить указанное значение. В случае указателя типом будет указатель на указатель, например:

func main() {
    var x *int
    x = new(int)
    fmt.Println("before", x, *x)
    set(&x)
    fmt.Println("after", x, *x)
}

func set(i **int) {
    p := new(int)
    *p = 2
    *i = p
}

Выход (попробуйте на Go Playground ):

before 0x416020 0
after 0x416040 2

[1118 ] Конечно, если у вас есть переменная указателя и вы не хотите изменять значение указателя только указанным значением, вы можете просто передать указатель и изменить указанное значение:

func main() {
    var x *int
    x = new(int)
    fmt.Println("before", x, *x)
    set(x)
    fmt.Println("after", x, *x)
}

func set(i *int) {
    *i = 2
}

Вывод (попробуйте на Go Playground ):

before 0x416020 0
after 0x416020 2

Одна вещь, на которую стоит обратить внимание: вы не можете передать указатель nil на функцию и ожидать, что сможете назначить что-либо указанному значение: nil указатели указывают в никуда. Вы должны передать указатель, отличный от nil, или в качестве альтернативы вы можете вернуть значение указателя (и назначить его вызывающей стороне).

7
задан Glorfindel 14 February 2019 в 20:40
поделиться

7 ответов

У меня была такая же проблема, которая меня раздражала. Я только что починил. Что я сделал, так это заменил «Все решение» на «текущий проект» в поле «Искать в» при выполнении поиска. Потом заметил, что результат не удвоится. После того как я вернулся к «полному решению», проблема исчезла.

6
ответ дан 6 December 2019 в 11:54
поделиться

Если Вы действительно находите во "Всем Решении", оно также ищет в любых загруженных файлах, даже если они уже находятся в решении. Это означает, что они будут перечислены дважды.

Возможно, это - Ваша проблема?

5
ответ дан 6 December 2019 в 11:54
поделиться

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

3
ответ дан 6 December 2019 в 11:54
поделиться

У Вас есть какие-либо символьные ссылки на каталог/файл в том же поисковом объеме? Это могло заставить файл быть перечисленным дважды: однажды для основного файла, и однажды для ссылки на файл. Хотя из памяти это должно показать каталог ссылки для 2-го возникновения, не файл, на который указывает ссылка (и это несовместимо тому, что находится в Вашем снимке экрана).

1
ответ дан 6 December 2019 в 11:54
поделиться

Попытайтесь закрыть VS2008, переименовав файл (USPostalApplciation.aspx и код позади файла также), затем вновь открыв VS2008, обновите все, о чем можно думать (проект, решение, и т.д....) затем пытаются делать поиск снова.

0
ответ дан 6 December 2019 в 11:54
поделиться

Удостоверьтесь, что Ваш веб-проект НЕ имеет никаких виртуальных каталогов, которые указывают назад на другие области сайта.

Проверьте, что VS2008 показывает те же виртуальные каталоги (если таковые имеются), что IIS имеет.

Если Вы неправильный указали или неправильно сконфигурировали Виртуальные каталоги, это вызовет ОГРОМНЫЙ хит производительности, репликацию результата поиска, и т.д.

0
ответ дан 6 December 2019 в 11:54
поделиться

У меня была похожая проблема. VS будет искать результаты решения из файлов, которые я загрузил в IDE, просто чтобы просмотреть их, а затем снова закрыть. Таким образом, он будет искать файлы, которых даже не было в решении.

Я просканировал все файлы в решении, но нигде не было ссылки на эти фантомные файлы. В конце концов я решил просканировать реестр и обнаружил, что они хранятся в списке MRU. После удаления записей списка MRU ожидаемое поведение было восстановлено.

0
ответ дан 6 December 2019 в 11:54
поделиться
Другие вопросы по тегам:

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