C#学习前辈的真言

来源:互联网 发布:传世田野源码 编辑:程序博客网 时间:2024/05/05 18:13

转自知乎话题:学习C#的正确姿势:
下面这些,都是我想对三年前的我说的,部分内容只代表自己的观点,当然你也应该有自己的思考,不要盲从:

    1、为自己做一些小工具,解决自己平时的需求,这样可以增加兴趣,C#非常擅长做这块
    2、购买或试用ReSharper :: The Most Intelligent Extension for Visual Studio,写代码时照着Reshaper的提示改,可以很快熟悉C#的高级语法
    举个例子,取Age大于20的User的Name,用循环可以这样做:

    List<string> names = new List<string>();for (int i = 0; i < users.Count; i++){    User u = users[i];    if (u.Age > 20)    {        names.Add(u.Name);    }}可以被resharper格式化成:var names = new List<string>();for (var i = 0; i < users.Count; i++){    var u = users[i];    if (u.Age > 20)    {        names.Add(u.Name);    }}//这样就知道了var关键字。这时候resharper会提示for循环可以写成这样:var names = new List<string>();foreach (var u in users){    if (u.Age > 20)    {        names.Add(u.Name);    }}

    这样就知道了foreach语法。这时候resharper会提示还可以写成这样:

    var names = users.Where(u => u.Age > 20).Select(u => u.Name).ToList();

    这样就知道了LINQ,看LINQ的表达能力多么强大。resharper就像一个随时能给你反馈的老师一样。一旦你学会的这些高级语法,完全可以不再使用resharper的。
    3、在 LeetCode Online Judge 上刷题,可以练习编程基本功和C#语法,同时对面试有益
    4、如果做Web的话,不要使用Webform
    5、遇到问题,调试、Google(或者一些代理,如天外天搜索 - 基于Google的搜索引擎)、在Stack Overflow上提问
    6、没事逛逛GitHub · Build software better, together.,特别是:

    • quozd/awesome-dotnet · GitHub
    • .NET Foundation · GitHub
    • aspnet · GitHub

    例如:
    如果想参与C#的设计:

    • C# 7 Work List of Features · Issue #2136 · dotnet/roslyn · GitHub C#
    • Design Meeting Notes for Apr 14, 2015 · Issue #2134 · dotnet/roslyn ·
    • GitHub C# should support indexed property · Issue #2144 · dotnet/roslyn · GitHub

    如果想参与.Net框架库的设计:

    • Propose: new method Enumerable.IndexOf · Issue #1415 · dotnet/corefx · GitHub
    • Add overloads to string trimming · Issue #1244 · dotnet/corefx · GitHub
    • New API for single-precision math · Issue #1151 · dotnet/corefx · GitHub

    如果想参与CLR的设计:

    • Consider reference counter as alternative garbage collector · Issue #430 · dotnet/coreclr · GitHub
    • (Discussion) Lightweight Boxing? · Issue #111 · dotnet/coreclr · GitHub

    7、《CLR via C#》是迟早要看的,配合工具ILSpy看,其它C#书没事翻一翻就好了
    8、其它通用的书:《编码的奥秘》、《编写可读代码的艺术》、《编写高质量代码》、《编译原理》、《程序员的自我修养—链接、装载与库》、《程序员修炼之道:从小工到专家》、《代码大全》、《代码整洁之道》、《算法导论》、《重构.改善既有代码的设计》等
    9、不要局限在C#或.Net上,C++、node、linux、mysql、js等等,如果感兴趣,都可以玩的,当然也不要局限在语言(咳咳…中文…咳咳)上

    作者:York Yao
    链接:https://www.zhihu.com/question/29815580/answer/45726193
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    0 0
    原创粉丝点击