自从更新到Visual Studio 2017之后,我在构造if语句时观察到了不良行为,因为当我尝试用括号括起子句时,这种智能感知无法识别变量名。考虑以下不完整的代码:
class AnythingClass
....
end class
public Sub doSomething()
Dim anythingInstance as new AnythingClass
if anyt
以这种方式键入代码时,自动完成将建议实例“ anythingInstance”。但是,如果我在启动如下的if子句时打开了括号,
class AnythingClass
....
end class
public Sub doSomething()
Dim anythingInstance as new AnythingClass
if (anyt
然后,声明的变量将不会显示在自动完成建议中。类名称AnythingClass将显示在建议中,而不显示在实例中
(编辑) 此分析不正确 ,请查看我的答案以获取有关原因的详细信息
我尝试创建一个全新的项目并获得预期的行为。因此,这似乎只发生在以前已从旧版本的Visual Studio升级的项目中。
我已经为怀疑者附上了两个屏幕截图!
答案 0 :(得分:0)
根据@Maciej Los和@TnTinMn的评论,我设法解决了这个问题。
如果您将代码编写为:
from tkinter import *
lista = [[" ", " ", " "],
[" ", " ", " "],
[" ", " ", " "]]
buttons = [[], [], []]
vitx = 0
vito = 0
root = Tk()
turno = Label(root, text="Turno de X", font=("Arial", 15))
turno.grid(row=1, column=1)
vitoriasx = Label(root, text="Vitórias de X:"+str(vitx), font=("Arial", 8))
vitoriasx.grid(row=1, column=0)
vitoriaso = Label(root, text="Vitórias de O:"+str(vito), font=("Arial", 8))
vitoriaso.grid(row=1, column=2)
def marcar(i, j, texto):
lista[i][j] = texto
buttons[i][j].config(text=texto)
for i in range(0, 3):
for j in range(0, 3):
buttons[i].append(Button(root, text=lista[i][j], command=lambda: marcar(i, j, "x")))
buttons[i][j].grid(row=i+2, column=j)
buttons[i][j].config(height=6, width=13)
root.mainloop()
在IF和参数之间留有空格,然后自动完成似乎会将其视为If 语句,并将显示实例变量。但是,如果您将代码编写为
IF (an...
没有空格,自动完成功能似乎会将其视为If 运算符,而不显示声明的实例。我不知道为什么会这样。我最初对新项目和先前导入的项目之间存在差异的分析是错误的。