我在去年春天用Java编写了一个Mancala游戏用于大学课程,我使用Eclipse IDE编写它.Eclipse中最好的(也是相当简单的)视觉辅助工具之一是,如果您选择一个特定的令牌,比如一个声明的变量,那么IDE将自动突出显示屏幕上该令牌的所有其他引用. Notepad ++,我的首选记事本替换,也是这样做的.
Eclipse中另一个简洁而类似的功能是代码右侧的垂直"错误栏"(不知道该怎么称呼它).它为文档中的所有语法错误显示小红框,为"变量声明但未使用"等警告显示黄色框,如果选择单词,则在文档中每次出现单词时,框中会出现框.
这些功能的屏幕截图:

经过半小时的搜索,我已经确定Visual Studio不能单独执行此操作,因此我的问题是:是否有人知道2005或2008中可以提供上述功能之一的任何加载项?
能够突出显示光标所在的当前行也很不错.我相信插件ReSharper可以做到这一点,但我更喜欢使用免费插件而不是购买插件.
我在表单上有几个"ASP:TextBox"控件(大约20个).
加载表单时,将从数据库中填充文本框.
用户可以更改填充的值,当他们提交表单时,我将发布到服务器的值并有条件地保存它们(由某些业务逻辑确定).
除了1个文本框之外的所有文本框都按预期工作.
在回发时,奇数框输出不包含用户在框中键入的更新值.
调试应用程序时,很明显myTextBox.Text反映了旧的预填充值,而不是新的用户提供的值.
每个其他框都正确显示其各自的用户提供的值.
我确实找到了解决方法.
我的解决方案是基本上从Request.Form对象中提取文本框的值: Request.Form[myTextBox.UniqueID],它确实包含用户提供的值.
可能会发生什么,这里?
正如我所提到的,其他文本框接收用户提供的值就好了,这个特殊问题的文本框没有任何与之关联的逻辑 - 只需要获取值并保存它.
这个文本框和其他文本框之间的主要区别在于这是一个多行框(用于输入注释),我认为它在ASP.NET中呈现为HTML"textarea"标记而不是"输入"标记.
在C#中,重新初始化先前声明的变量而不是声明和初始化新变量是否有利有弊?(忽略对简洁性和人类可读性的看法.)
例如,比较这两个样本:
DataColumn col = new DataColumn();
col.ColumnName = "Subsite";
dataTable.Columns.Add(col);
col = new DataColumn(); // Re-use the "col" declaration.
col.ColumnName = "Library";
dataTable.Columns.Add(col);
Run Code Online (Sandbox Code Playgroud)
VS
DataColumn col1 = new DataColumn();
col1.ColumnName = "Subsite";
gridDataTable.Columns.Add(col1);
DataColumn col2 = new DataColumn(); // Declare a new variable instead.
col2.ColumnName = "Library";
gridDataTable.Columns.Add(col2);
Run Code Online (Sandbox Code Playgroud)
一个涉及循环的类似示例:
string str;
for (int i = 0; i < 100; i++)
{
str = "This is string #" + i.ToString(); // Re-initialize the "str" variable.
Console.WriteLine(str);
}
Run Code Online (Sandbox Code Playgroud)
VS
for (int …Run Code Online (Sandbox Code Playgroud)