日期:2014-05-18  浏览次数:20503 次

关于学习c#的困惑
我比较熟悉 的是C#,也用.NET做过一个很基本的图书馆借阅功能的web页,但是我最近发现在我们学习算法课的时候,我发现这些快速排序,折半查找,二叉树的遍历这些东西很有意思,我也每次自己用C#实现或在网上找源码实现这些算法,但是我不知道这些和我以后要做的东西有什么关联..................但是我觉得这些写出来的方法都是自己清楚的,但是好像.net库中,有很多类都已经实现这些功能了,而且肯定比自己写的要好,我现在感觉我学计算机科学与技术
  我们学了c++(这个大一开的完全没有懂),java,.net(主要是学的控件使用,和ado连接数据库的对象,c#语法基本是靠java的回忆),
然后也学了SQLSEVER,组成原理,操作系统等底层点的

但是我觉得我好像游离在这些东西里面,用.net的时候我只是简单的知道怎么用,但是每一个控件什么的具体怎么实现的我确不知道,
比如我寒假学过flash 后来看了看actionscript2.0,我发现这个里面我至少可以自己写出一个导航的控件,在母板页中放进着个swf,实现二级菜单和简单的跳转的功能,而且可以嵌入进.net页面里面(虽然实际上flash和.net没有数据的交换),但是这个让我感觉是我自己在设计而不是用treeview控件什么的只是单纯的设置一下控件的url,text什么的属性(因为我用的是vs2005,所以2005还没有那种好点的导航控件).反正是很迷茫的,难道我要实现一个功能,只能等待新的版本的功能?而不是让我通过现有的东西来编写出新的花样??????
求解惑。。。。



------解决方案--------------------
方法学了,不是必须每次都用。
做的时候要结合实际情况,选择最合适的就行。
多学点没坏处。
------解决方案--------------------
练习算法的目的是,让你练习基本技能和对算法的一般认识。当然标准算法自然不需要你将来自己编写,但是实际问题很多是标准算法无法解决的,这些如果你有算法的基础,就很好解决,否则就傻眼了。

这好比,为什么我们的城市有公交车,还需要出租车呢——大多时候,公交车便宜,也不比出租车费时。但是公交车只能走固定的线路。那些偏远的地方,就必须依赖出租车了。
------解决方案--------------------
当现有的控件不能满足你的需求的时候你可以自己写控件。
------解决方案--------------------
练习算法是为了以后实际应用中用

------解决方案--------------------
不要这么鄙视C#和ASP.NET,很有技术含量的,微软做的强大是想不让你沦陷在treeview这种谁都能实现的东西中,而是让你有精力做真正有技术含量的,总不是会了几个跳转语句,会了几种表现方法就是会C#了吧
------解决方案--------------------
选择、精益求精! 你了解的越多,就越迷茫。
------解决方案--------------------
呵呵,楼主问的问题很现实,我也是菜鸟,不能给你解释明白这些问题,我就按自己的看法来说一下吧,希望对你有一点点的帮助:

“我也每次自己用C#实现或在网上找源码实现这些算法,但是我不知道这些和我以后要做的东西有什么关联..................但是我觉得这些写出来的方法都是自己清楚的,但是好像.net库中,有很多类都已经实现这些功能了,而且肯定比自己写的要好,我现在感觉我学计算机科学与技术”

-----------呵呵,这个确实是这样,那些常规的算法,实际上微软的工程师们早已把它们都封装好了,方便我们应用开发者直接调用,省时省力,但学校的任务是传播知识,所以你作为学生,看到这些知识,你应该感到高兴,它给你两种选择,一种是你自己懒惰,可以直接使用官方封装好的;另一种是你自己写,自己去实现这些功能(其实你真正开发了,你就懂了,很多时候,选择懒惰,直接调用官方的实现,并不一定是坏事,因为项目工期就定在那里了,时间紧迫啊,你想玩自己的算法,只能在家里玩了)。至于你说这些知识与你以后的工作有什么关联,这点不好说,国外有前辈说过,书里的有些知识,可能我们一辈子都用不到,或许。好比做桌面开发的,很少用到智能移动方面的知识一样。或许后面你去开发游戏时,这些算法的使用频率会高一些。


“然后也学了SQLSEVER,组成原理,操作系统等底层点的” 

--这些你能知道就尽量知道吧,因为编码其实就是和计算机沟通,你懂它的内部运作,就能更能效的和它勾通了,不是吗?


“但是我觉得我好像游离在这些东西里面,用.net的时候我只是简单的知道怎么用,但是每一个控件什么的具体怎么实现的我确不知道”

---这是因为你目前还是学生,还没看有足够量的这些方面的书籍,当你的知识量达到一定程度后,你就会去挖掘更深度的理论知识,一本好书难求啊,你加油吧,多去图书馆逛逛,看几本深度些的,你就理解那些控件原来并不简单。


“但是这个让我感觉是我自己在设计而不是用treeview控件什么的只是单纯的设置一下控件的url,text什么的属性(因为我用的是vs2005,所以2005还没有那种好点的导航控件).反正是很迷茫的,难道我要实现一个功能,只能等待新的版本的功能?而不是让我通过现有的东西来编写出新的花样??????”

---好样的,这想法。其实你观察微软的每次版本升级,那些官方控件的升级,就是不停地修正像楼主这样的需求,因为需求是变化的,官方升级它们,就是因为现实中的需求在变化,而它们的旧版本没能达到需求。想玩这一块知识的,可以找找ASP.NET 自定义控件开发方面的书来补充一下。
------解决方案--------------------
等你遇到实际问题就知道如何用你所学的东西去解决了
------解决方案--------------------
四个字:多看多学
------解决方案--------------------
所谓.net控件,最后还是生成html呈现的
所以你要开发新功能需要的不仅仅是.net知识,更需要html,js等知识