++i , i++ ,这个是基本, 哪算得上炫技. 实际价值嘛, 当然受到你所在的领域的局限性,你没遇到需要它的场景罢了这个著名的技巧,给你10美元,20美元, 你要是能找到bug To the first person to inform me of a legitimate bug in the code, I'll pay a bounty of US$10 (by check or Paypal). If directed to a charity, I'll pay US$20. http://graphics.stanford.edu/~seander/bithacks.html
我也走了很多弯路。学C#没进展后来换Delphi,再回头看的C#就容易多了。
总结就是老绷着书看没实践不行,基础很重要,没基础不能直接买ASP.NET书籍看。
C#编程基础 面向对象 SQL入门 ADO.NET 这些学懂了再学别的。给你推荐视频教程:[浪曦原创]CSharp语言参考视频 共38讲 讲的很细。《传智播客.Net培训基础班》
http://download.csdn.net/detail/h_gxi/5096153《传智播客.Net培训就业班》
http://download.csdn.net/detail/h_gxi/5091216
我只想说:“呵呵”多写点控制台应用程序来锻炼下写代码的能力,比写web、写form,更能让你集中注意力到知识点上。
先把基础学扎实吧,比如:i++和++i的区别,传值和引用的区别等等。
出个题目,先别写代码验证,大家能看得出程序输出是什么吗?
static void Main(string[] args)
{
int n = 1;
Console.Write("{0} {1} {2} {3}\n", n, n++, ++n, n);
//Console.Write("{0} {1} {2} {3}\n", n, ++n, n++, n);
Console.Read();
}
学好基础的后,再想办法让你的代码能更好的组织起来,易读易懂,这时候你自然而然会想到利用方法(函数)、枚举、结构体、代码复用等等然后再进一步抽象,你会想到何不把结构体或其它数据结构进一步抽象成对象,让你的程序显得更加符合“自然规律”呢?!之后你会觉得使用面向对象的继承、多态、重载来解决代码复用、对象权限控制等问题是非常方便的事情。
你或许会用到事件,属性,字段,委托代理等等也许在你没事的时候,会有想到动态调用其它函数、其它类。你会接触到反射这个技术。之后你会觉得使用设计模式是个非常有趣的事情......
写得比较乱。但顺序应该是从上到下阅读。
实际价值嘛, 当然受到你所在的领域的局限性,你没遇到需要它的场景罢了这个著名的技巧,给你10美元,20美元, 你要是能找到bug
To the first person to inform me of a legitimate bug in the code, I'll pay a bounty of US$10 (by check or Paypal). If directed to a charity, I'll pay US$20. http://graphics.stanford.edu/~seander/bithacks.html
Console.Write("{0} {1} {2} {3}\n", n, n++, ++n, n);
的代码算什么?算让人知道,自己懂参数是先左后右还是先右后左计算,是先用n还是先+?利用副作用来实现程序逻辑不是更危险的事情吗?至于z=a+b+c+d的例子,那是给编译器看的吧,这儿大部分是普通程序员,普通程序如果和硬件挂钩,也许是一个更坏的方案,如果移植到以前的cpu,那好处一点没有,如果移植到以后的cpu,也许机器架构都变了,一样得不到好处。
表达一个意思,经常会遇到例子举得不合适,这有什么关系呢?能传达意思就行了.(就像很多 <重构>这书,或者很多OOP的书, 为了说明OOP,却受限于篇幅,作者本身都反复强调,举了很多不合适的例子)
而 a+b , c+d 这些,不是给汇编和硬件程序员的. 手册明确讲了是给High-Level program lang..们的约定
如果想要写出更高性能的代码, 那就要对编译器更和谐友好一些.于是,写高级语言的代码的时候,就要注意这个 "技巧". (当然,如果 abcd不是简单的变量,而是各种裹脚布似地OOP封装的那就另外一回事)a+b+c+d 这条,背后原理,从国产龙芯,到intel安腾普遍适用. 编译器和语言,也大部分适用
世界上的任何一样东西都是一个对象,都有自己的属性和方法
必出车
属性 黄色,1米高……
方法 开车、跑路…………
高级程序员也差不多就是写编译器的程序员了吧,对于普通程序员来说,几乎遇不到四个普通变量累加需要考虑次序的问题,累加不是通过集合循环就是直接在数据库里实现了,cpu或者编译器也许对分开写更友好,但这个始终是作为高级应用来说的,对于初学者,自学者,意义不大,也许哪天有新的累加器,可以三个输入,哪a+b+c+d+e+f是分成ab,cd,ef,还是abc,def呢?
站在计算机的角度讲,也许对计算机友好些是对的,但是对于普通程序员来讲,站在数学角度,也许更合理一些,因为数学更抽象,面向对象的设计理念也就是一个抽象的过程,对计算机一点也不友好,所以有c也有c#,c去写高级程序,c#写普通程序,既然学.net,就按普通程序员来吧。