积极答复者
vs的重构-重命名不是根据完整命名空间来查询的

问题
-
刚刚做的、
showinfo finfo = new showinfo();
finfo.Show();
Control contr = null;
foreach (Control c in finfo.Controls.Find("label1", true))
{ contr = c; }
//contr.InvokeRequired = true;
SafeThread safeth = delegate(string info)
{ contr.Text = info; };
contr.Invoke(safeth, "你是猪呀");本来showinfo的实例名为info,由于后面定义delegate参数时重名了
我把showinfo实例名改为finfo,此时 finfo下面出现一条线 我把鼠标放上去以重命名所有引用
但重命名后我发现 委托里的contr.Text=info变成了contr.Text=finfo
很不可思议
由于刚刚想到 是不是我本身输入的时候他就是Control类型,于是我Ctrl+z回去看了下 VS提示是局部变量string info
于是我放心的又一次重构
结果又更改了。。。。。。。。。。。。。
答案
-
我知道你设置正确,也知道你的意思。
VS2008的重构功能就是这样设计的,如果你有两个不同类型的变量同名的话,重构的时候会有提示,如果继续就会两个变量都改变。
周雪峰- 已标记为答案 KeFang Chen 2009年2月9日 3:49
-
Visual Studio 设计上的问题在这里很难答复你~最好联系微软的工程师~可以通过客服电话或Connect站点来联系~
宠辱不惊,看庭前花开花落。 去留无意,望天上云卷云舒。- 已标记为答案 KeFang Chen 2009年2月9日 3:49
全部回复
-
你好!
如果不同类型的变量同名,你修改其中一个变量名的并重构的时候会出现一个警告:
当前未生成项目或其中一个依赖项,可能未更新引用。
下面有一个复选框“每次显示此对话框”,你没有显示这个警告可能是你上次没有勾选这个复选框。
周雪峰- 已标记为答案 周雪峰MVP, Moderator 2009年2月4日 10:29
- 取消答案标记 singledark 2009年2月4日 13:14
-
我知道你设置正确,也知道你的意思。
VS2008的重构功能就是这样设计的,如果你有两个不同类型的变量同名的话,重构的时候会有提示,如果继续就会两个变量都改变。
周雪峰- 已标记为答案 KeFang Chen 2009年2月9日 3:49
-
Visual Studio 设计上的问题在这里很难答复你~最好联系微软的工程师~可以通过客服电话或Connect站点来联系~
宠辱不惊,看庭前花开花落。 去留无意,望天上云卷云舒。- 已标记为答案 KeFang Chen 2009年2月9日 3:49