前言

本文写给想学C#的朋友,目的是以尽快的速度入门

C#好学吗?

对于这个问题,我以前的回答是:好学!但仔细想想,不是这么回事,对于新手来说,C#没有那么好学。
反而学Java还要容易一些,学Java Web就行了,就是SpringBoot那一套。
但是C#方向比较多,你是学控制台程序、WebAPI、ASP.NET、Winform还是WPF?如果再区分一下.NET Framework和.NET Core,应用程序类型就更多了。
我建议可以通过控制台程序和Winform入门,这样才简单。
控制台程序可用于写Hello World,以及学习语法的时候写一些小Demo。使用Winform,就可以写一些小应用了,比如计算器、时钟,以及你能想到的小工具,都可以用C#写。
比如计算器程序,可以写的很简单,也可以写的很复杂,这是我2012年写的:Calculator
万事开头难,简单入门之后,C#的简单易学才真正体现出来。

C#怎么学?

不建议看视频学习,除非你确实找到了不错的入门视频,原因:
1、C#优秀入门视频不多。
2、看视频学习速度慢。只学语法没有用,看不到学习成果,学完就扔了。所以为了快速学完语法,再学实用的内容,最好看书。

这里推荐一本从当当网搜索到的书,《C#入门经典》第9版,书的内容更新至C#9和.NET5,很新了。
C#零基础小白快速入门-LMLPHP
如果你有更好的书,也可以。

书怎么看?

  1. 前两章了解,学完知道怎么编写控制台程序,也就是怎么写Hello World。
  2. 后面几章是重点,讲语法,包括变量、表达式、数据类型、流程控制、函数、面向对象、类、集合、泛型。
  3. 后面是高级内容,可以先不学,也可以选学、有空再学,或者用到了再学。
  4. 简单学习一下Winform,会使用VS2022创建Winform程序,会拖控件。最简单的,双击控件就可以编写代码了。拖控件干什么?学会拖控件,你就可以发挥自己的想象力了,写个计算器、写个小工具等,我上学那会写过屏保(用VB写的,跟C#是一样的,书上可没有这个,就是发挥想象力,你想到个点子,自然就知道去研究怎么写),写过时钟程序,写过定时自动关机等。

然后

恭喜你!你已经入门了!这意味着什么,只要有公司要你,你就可以干活了!
可是、可是,公司做Web项目,我ASP.NET还没学啊?你只要会照葫芦画瓢,你就能干活了!
当你干了两天活之后,对于ASP.NET的学习,你是买书,还是看视频,随你便。
我以前就是这样入门的,那是十几年前了,现在太卷了。参与项目,才会学的更快。

如果你知道微软的文档怎么看,那更好

例如:

  1. 《C# 编程指南》 讲C#语法的,还不错
  2. 《.NET 文档》 讲实在的,对于新手来说,真没法看了,范围有点大,所以我说你知道怎么看最好,不知道以后再说。点击《使用 ASP.NET Core 创建 Web 应用》可以跳转到更具体的《ASP.NET 文档》
  3. 《ASP.NET 文档》 这个范围稍微小一点,主要讲Web API、ASP.NET Core MVC、Blazor等
  4. 《使用 ASP.NET Core 创建最小 Web API》 《使用 ASP.NET Core 控制器创建 Web API》 这个范围再具体一点,看完就可以写Web API了,这个有用

入门的关键点

  1. 学会基本的语法。(不会Lambda表达式不影响写C#代码,要学的话,先记住一种固定写法,几分钟就能学会)(例如我至今不太清楚"协变"与"逆变",但不影响我写代码,报错了,就说明这样写不行呗)
  2. 学会使用VS2022创建控制台应用程序和Winform应用程序。学会拖控件、设置控件属性和事件、调试。对于VS2022的使用,自己探索,反正都是汉化版的,多点点就行。
  3. 尝试写点小工具,最好能参与到项目中,不会就百度,百度时,搜索关键词一般是“C# XXX”、“Winform XXX”、“.NET XXX”、“.NET6 XXX”、“.NET Core XXX”。
  4. ASP.NET Core MVC是有点复杂,学习需要点时间。ASP.NET Core Web API就可以很简单,可以先学这个。

.NET Framework 和 .NET Core

新手可以直接学习.NET Core,别管.NET Framework了

.NET官方自带的库

学完了语法,学会了如何创建控制台程序、Winform程序、Web API程序、ASP.NET Core Web程序,下一步就是实际工作了,最重要的就是学会各种库的使用。
当你创建一个工程,VS2022会帮你自动引入自带的库,主要是System开头,有的是Microsoft开头,文档:.NET API 浏览器,这个文档我没有正经看过,我都忘了自己是怎么学会的了,在工作中学的吧,我也只会其中比较常用的部分。

NuGet

NuGet 是免费、开源的包管理开发工具。https://www.nuget.org/

光有官方自带的库,是不够的,这就需要第三方开源库。NuGet是非常人性化的。
以Dapper这个ORM库为例:

1. 库的下载量、最近更新时间、最新版本号

搜索我们要安装的库,我们可以看到一些关键信息:下载量、最近更新时间、最新版本号,下载量大的库,一般都是主流的库,如果你看到一个库,下载量很小,那你要谨慎一点。
C#零基础小白快速入门-LMLPHP

2. 库的当前版本支持的框架

可以看到这个库是在.NET 5.0、.NET Standard 2.0和.NET Framework 4.6.1框架下编译的(深色),可以看到支持(兼容)哪些框架及版本(浅色)
C#零基础小白快速入门-LMLPHP

3. 库的依赖库

VS2022会自动管理依赖库以及它们的冲突,一般不需要手动处理。当然遇到冲突且无法自动解决的情况下,也有配置方法。
C#零基础小白快速入门-LMLPHP

4. 每个版本的下载量、发布日期

这个很重要,很多年没有更新的库,你要谨慎一点。
C#零基础小白快速入门-LMLPHP

5. 我的项目使用的是.NET Framework 4.5.2,这个库装不上怎么办?

C#零基础小白快速入门-LMLPHP
点开1.60.6这个版本,这是net452框架能用的最新的版本了
C#零基础小白快速入门-LMLPHP

6. 库的安装

C#零基础小白快速入门-LMLPHP
选择工程、选择版本,点击安装
C#零基础小白快速入门-LMLPHP

7. 已安装的库

可以通过NuGet包管理器的"已安装"选项卡查看已安装的库,也可以工程文件中看到安装的库
这里依赖库、依赖库的依赖库,是没有列出来的,非常清爽
C#零基础小白快速入门-LMLPHP

02-03 22:29