本文次要是心愿帮忙想学习 C# 和 .NET 技术栈的同学找到入门的路径!
微软在官方网站上提供了全套 C# 文档,提供从入门到精通的齐全领导。
官网文档地址:主动 / 英文 / 中文
- 英文原版:https://docs.microsoft.com/en…
- 中文版:https://docs.microsoft.com/zh…
因为长期积攒,C# 官网文档提供的内容较多,但比拟芜杂,对初学者来说并不是很敌对。而对曾经学习了 C# 的人,作为参考和知识点查找工具来说是十分有用的。然而,官网文档提供了最全、最具体的学习内容,初学者能够追随导读,在这里学习 C# 的基础知识。
对于初学者来说,能够从「C# 基础知识」开始浏览。
C# 基础知识导读
第一章「入门」次要是对 C# 及其环境的介绍,通读即可,不须要认真去咀嚼。这一章提到的概念,大部分都会在「C# 编程指南」和「语言参考」局部找到具体的形容。
其中,「C# 语言介绍」中介绍了 C# 和 .NET 体系结构。C# 和 .NET 密不可分。能够说,C# 就是为了 .NET 而创造的一种语言,所以在学习 C# 的同时,肯定要理解 .NET。学任何一门语言,都有两个重点:一是语法自身,二是撑持该语言的 API 库(函数库 / 类库等)。.NET SDK 为 C# 提供了根底而且全面的 API 库。
「教程」局部次要通过两种模式进行教学,「基于浏览器的教程」能够在浏览器上一步一步的理解 C# 开发的一些基本概念。但学完「基于浏览器的教程」之后,肯定不要疏忽了「在本地环境中工作」,这是实际环节,是在真正的日常工作环境中编写 C# 程序。这一部分介绍了基于命令行的 C# 我的项目操作和基于 Visual Studio 2019/2022 的 C# 我的项目操作,倡议间接学习后者。基于 dotnet CLI 的局部理解即可,在前面学完 C#,深刻 C# 构建技术和继续集成相干高级常识的时候再进行具体的学习。
第二章「根底」局部须要通读。这一部分的内容最好是每读完一节都在 Visual Studio 或 dotnetfiddle.net 中进行实际。其中「面向对象的编程」局部须要仔细阅读,如果有 C++ 或 Java 的根底,这一部分浏览起来可能会轻松一些;如果没有学过 OOP(Object Oriented Programming,面向对象程序设计)的同学,能够参照别的相干书箱或资料辅助浏览了解。留神,这里提到的「多形性」在少数书籍中叫作「多态性」。
「C# 中的新增性能」有趣味能够理解一下,这是 C# 语言的倒退历史。这里次要是针对学习过 C# 的程序员,提供疾速理解新增语法和性能的路径。
接下来的内容能够跳过,直到「C# 编程指南」。
C# 编程指南导读
「C# 编程指南」局部绝对残缺地介绍了“编程”的根底概念 和 C# 的语言特点和语法。这一章次要还是以介绍概念和实践为主,所以有一些货色如果不能了解,能够先记住,在前面的实际中逐渐去了解。
其中,按程序先通读一遍「编程概念」局部,理解编程和 C# 编程的各种基本概念。在对“编程”和“C#”了解不够深刻的状况下,这部分内容了解和记忆可能都会比拟艰难,所以临时不须要认真研读。在实现 C# 语言的学习之后,回头再仔细阅读一次「编程概念」局部,争取联合所学的 C# 常识进行了解,并通过实际(编写代码)来坚固。
在学习本章内容的时候,可能会有一些批向「标准」的参考链接不能关上。没有关系,这些内容在「语言参考」章节中也有。
C# 语言参考导读
「语言参考」局部具体的形容了 C# 的语法元素,学习伎俩同样是浏览并加以实际。不过记住,这里提供了各种代码片段,都只能让阅读者全面的去了解相应的语法。要做对 C# 语言的灵便利用,须要在实践中去一直的写代码和优化代码。尤其是优化代码,是初学者最容易疏忽的事件。写代码就像写文章一样,每隔一段时间回头去看,可能都会发现能够优化的中央 —— 这就阐明本人在提高。所以有时候本人写过的综合练习代码(根底练习就没必要了,至多应该是一个逻辑残缺的编程指标),无妨过一段时间再写一次。
C# 是一门强类型语言,所以「类型」这一部分十分根底,也十分重要。对值类型和援用类型的区别,倡议联合计算机组成原理相干课程中的堆、栈的概念来了解。如果学过 C/C++,能够通过指针来了解援用。须要留神的是,C# 的援用和 C++ 的援用是两个不同的概念 —— C# 的援用概念更像是去掉了计算能力的 C/C++ 指针;而 C# 函数参数中通过 ref
和 out
润饰的参数,才更靠近 C++ 援用的概念。
在学习语法的时候,你可能会发现局部语法其实是为开发者提供的便捷写法,咱们习惯上会称之为“语法糖”。比方应用 var
来申明变量就是一种语法糖,它能够让开发者在申明变量时写更少的字符。不过语法糖通常有实用的状况,请肯定留神其利用场景以及其所代表的实在意义,不要因为便捷就疏忽其本质。
「关键字」次要是用于撑持语言个性,单纯的学习关键字并不能达到很好的成果。倡议理解关键字的用户,并联合「C# 编程指南」中的相干概念进行了解。比方“拜访修饰符”波及到命令空间、类和成员的可见性;abstract
和 interface
波及到 OOP 中的抽象概念;virtual
和 override
波及到 OOP 的多态性等。也有一些关键字波及到较为浅近的语言个性,比方 extern
、volatile
等,能够先理解,晓得有这么个货色,在学习和应用到相干高级个性的时候再来了解。
学习办法的时候要可能了解到,办法也是一种函数,它能够和另外的函数表现形式比照 / 类比学习,比方委托和 Lambda。
学习运算符和表达式的时候要搞明确表达式和语句的区别,咱们为什么须要表达式?运算符和函数在表达式中起什么作用?当然别忘了去学习运算符的优先级。要齐全的记住运算符优化级可能会有些艰难,然而请记住运算符优先级表的地位,备查;也别疏忽了一对小括号 ()
在明确运算优先级时有着无足轻重的作用。
小结
所谓语言,其实波及的内容并不是很多,无非就是各种编程概念所对应的语言个性和语法。对于大部分编程语言来说,语言根底无非都是常量、变量、表达式、函数和语句,以及面向过程的程序(程序、分支、循环)和面向对象的程序(接口、类和对象)。
任何语言都会有一套规范库,也会有一些习用库。比方 C++ 有 cstdlib/stdlib.h、STL (Standard Template Library),还有 Boost 等;Java 有 JDK 等。而 C# 的规范库由 .NET 提供,而 .NET 又分为 .NET Framework、.NET Core 和 .NET 5+ 几个架构分类。倡议间接应用 Visual Studio 最新版本(目前是 2022)或次新版本(目前是 2019),并基于 .NET 6 或 .NET 5 来实际。因为 .NET 5/6 绝对较新,能找到的书籍还不多,能够找 .NET Core(倡议 3.0+)相干的书箱来类比学习,他们之间的差别不是很大。
越来越多的语言体系都提供了 API 仓库,比方 Java 有 Maven,JavaScript 有 npm 等。C# 所属的 .NET 体系提供了 NuGet 仓库,在这里能够找到各种各样的库,用来减速程序开发。然而在理论应用的时候应该留神测评和筛选,抉择适合且生态衰弱的的库。
在学习了 C# 根底之后,倡议看两本综合性的 C# 编程书箱,相熟 C# 在我的项目中的应用,尤其是在 ASP.NET 中的应用。深刻学习的过程不要忘了把工具用好,Visual Studio 是 C# 开发最好用的工具,肯定要长于发现、总结和分享 IDE 的应用技巧,理解 IDE 的性能和优良的扩大(插件),熟练掌握罕用快捷键,把 IDE 打造(配置)成适宜本人的高效率开发工具。
附:举荐书单
以下书籍在当当、京东等商城都能够找到。因为软件开发技术突飞猛进,请尽量浏览最新版本,防止把精力节约在一些曾经过期或者曾经更新过的技术上。当然有工夫的时候去理解一下技术倒退是无益的,但这不是初学阶段的重点。
- 《C# 入门经典:更新至 C# 9 和.NET 5》
- 《CLR via C#(第 4 版)》
- 《ASP.NET Core 3 高级编程(第 8 版)》
- 《深入浅出 ASP.NET Core》