以下问题都是对于怎样成为一个C#高手问的,我主要是想开发对于桌面应用或网络应用(是C#而不是ASP)的程序
第一个,学习方法上的:
数学与外语,我想如果要用到很深的数学的话那就是关于一些核心的算法问题了,我还没到那个水平
我想问的是关于外语,要多少水平才够,我只有初中水平,好在读初中的时候外语还行,每次都能到90分以上,所以现在有生词的时候查查字典就能明白了,其它很多都能看得懂,这在我学习ASP.NET过程中没什么阻碍,学了三个月,对于BBS 留言簿,聊天室,小的电子商务程序也还能做,安全性能方面也还算差不多吧,现在学C#了,虽然有生词查查字典也能得到解决,但这很显然不够,网上有好多资料全是外文的,我不想在靠翻译软件了,我必须在看到外文资料的时候就能全明白,而且我也很想学好外语,一是我想学,二是我想成为C#程序高手,所以望高手们说说我要想精通C#的话要多少外语水平才够,有没有好的书向我推荐?望大家向我推荐几本学习外语与C#的书(一定要自已看过的哈,这样才能有准确性,文中外语是指英语)另外要是说一说学习C#的一些方法就更好了,当然一样要确保你用过,就样更有准确性,(我这里有个搞软件的向我极力推荐一本书关于C#的,我问他看过没有,他说没有,我差点没晕过去,他看都没看过怎么知道好????????)
二是程序上的:(略了一些..)
先看代码 test()
{
DataTable tabel;
int num=tabel.Rows.Count+1;
DataRow row=table.NewRow();
while(true)
{
try
{
row["test"]=num.tostring(...);
table.row.add(row);
break;
}
catch
{
num++;
continue;
}
}
}
我没明白为什么要用while而不直接用try catch,它的意思是不是加入新行成功后就跳出来,有异常的话就进行下一次加入新行的动作?但我想不明白的就是要是第一次有异常那怎么知道下一次没有,要是一真有异常的话那不就是死循环?
第一个,学习方法上的:
数学与外语,我想如果要用到很深的数学的话那就是关于一些核心的算法问题了,我还没到那个水平
我想问的是关于外语,要多少水平才够,我只有初中水平,好在读初中的时候外语还行,每次都能到90分以上,所以现在有生词的时候查查字典就能明白了,其它很多都能看得懂,这在我学习ASP.NET过程中没什么阻碍,学了三个月,对于BBS 留言簿,聊天室,小的电子商务程序也还能做,安全性能方面也还算差不多吧,现在学C#了,虽然有生词查查字典也能得到解决,但这很显然不够,网上有好多资料全是外文的,我不想在靠翻译软件了,我必须在看到外文资料的时候就能全明白,而且我也很想学好外语,一是我想学,二是我想成为C#程序高手,所以望高手们说说我要想精通C#的话要多少外语水平才够,有没有好的书向我推荐?望大家向我推荐几本学习外语与C#的书(一定要自已看过的哈,这样才能有准确性,文中外语是指英语)另外要是说一说学习C#的一些方法就更好了,当然一样要确保你用过,就样更有准确性,(我这里有个搞软件的向我极力推荐一本书关于C#的,我问他看过没有,他说没有,我差点没晕过去,他看都没看过怎么知道好????????)
二是程序上的:(略了一些..)
先看代码 test()
{
DataTable tabel;
int num=tabel.Rows.Count+1;
DataRow row=table.NewRow();
while(true)
{
try
{
row["test"]=num.tostring(...);
table.row.add(row);
break;
}
catch
{
num++;
continue;
}
}
}
我没明白为什么要用while而不直接用try catch,它的意思是不是加入新行成功后就跳出来,有异常的话就进行下一次加入新行的动作?但我想不明白的就是要是第一次有异常那怎么知道下一次没有,要是一真有异常的话那不就是死循环?
{
DataTable tabel;
int num=tabel.Rows.Count+1;
DataRow row=table.NewRow();
while(true)
{
try
{
row["test"]=num.tostring(...);
table.row.add(row);//应该时table.rows.add(row);
break;//新航加入成功,退出.
}
catch
{
num++; //新航加入失败,num++;
continue;//继续.
}
}
}
//你的table的test列应该事唯一的吧??当这列插入相同的值时,就会异常,,
//这时就让num++, 如果还是异常,继续加,否则,table新真一个row.
//此时,无异常,,break,退出循环.
//不会死循环.
但是,这在你的运行程序中可能吗?
你的table航数必须达到int.MaxValue-int.MinValue+1才可能.
不必考虑这样的问题.
row["test"]=num.tostring(...);
table.row.add(row);比如说row没有test列,table中还有其他不能为空的列,或是有约束等.
{
DataTable table;
int num=table.Rows.Count+1;
DataRow row=table.NewRow();
while(true)
{
try
{
row["test"]=num.tostring(...);
table.row.add(row);
break;
}
catch
{
num++;
continue;
}
}
}这个程序有点意思,作者巧妙的利用异常来给 "test" 加一个唯一增长ID
想法不错
例: 你总有n条记录
如果第一条记录为 n1 ,且n1["test"] = n;
并且n1++ ["test"] = n++; 哪么你插入一条新记录,要得到这个唯的增长值,你需要循环n次才能插入,试想 n1["test"] = n > 100000 ,会发生什么?? 没有测试过,纯个人观点--- 呵呵