前言

本文写给想学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,很新了。



如果你有更好的书,也可以。

书怎么看?

  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. 库的下载量、最近更新时间、最新版本号

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

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

可以看到这个库是在.NET 5.0、.NET Standard 2.0和.NET Framework 4.6.1框架下编译的(深色),可以看到支持(兼容)哪些框架及版本(浅色)

3. 库的依赖库

VS2022会自动管理依赖库以及它们的冲突,一般不需要手动处理。当然遇到冲突且无法自动解决的情况下,也有配置方法。

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

这个很重要,很多年没有更新的库,你要谨慎一点。

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



点开1.60.6这个版本,这是net452框架能用的最新的版本了

6. 库的安装



选择工程、选择版本,点击安装

7. 已安装的库

可以通过NuGet包管理器的"已安装"选项卡查看已安装的库,也可以工程文件中看到安装的库

这里依赖库、依赖库的依赖库,是没有列出来的,非常清爽

C#零基础小白快速入门的更多相关文章

  1. php编程零基础如何快速入门。门头沟编程

    昨天遇到一个人,说知道thinktphp,不过几年前的事了. 我先跟他讲了下,xyhcms后台功能,各个版块,以及数据库都介绍了一下. 跟他说了一个功能现场实现,说了实现方法. 然后上机操作,发现他表 ...

  2. 【零基础】快速入门爬虫框架HtmlUnit

    迅速的HtmlUnit htmlunit是一款开源的web页面分析工具,理论上来说htmlunit应用于网页的自动化测试,但是相对来说更多人使用它来进行小型爬虫的快速开发.使用htmlunit进行爬虫 ...

  3. 零基础小白Python入门必看:面向对象之典型魔术方法

  4. 零基础程序员入门Linux系统 !如何快速恢复系统?

    新手在学习Linux系统的时候,难免会遇到命令输错,或系统出错的难题.那么如何快速解决呢?本文就先给你一个后悔药,让你快速备份并恢复Linux系统.本文将以Ubuntu为例,在这之前,你需要一台服务器 ...

  5. Objective-C基础语法快速入门

    Objective-C基础语法快速入门 2010-11-04 16:32 折酷吧 zheku8 字号:T | T 假如我们对面向对象的思维已经C语言都很熟悉的话,对于我们学习Objective-C将会 ...

  6. 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建

    003-PHP基础-01-PHP快速入门 03-PHP环境搭建 1.客户端(浏览器) IE FireFox CHROME Opera Safari 2.服务器 是运行网站的基本 是放置程序代码的地方 ...

  7. 【个人笔记】002-PHP基础-01-PHP快速入门-02-PHP语言相关介绍输

    002-PHP基础-01-PHP快速入门 02-PHP语言相关介绍 1.PHP是什么 Hypertext Preprocessor超文本预处理器 是一种通用开源脚本语言 Personal Home P ...

  8. 【个人笔记】001-PHP基础-01-PHP快速入门-01-PHP职业路线及PHP前景

    001-PHP基础-01-PHP快速入门 01-PHP职业路线及PHP前景 PHP职业路线 PHP初级工程师 1年以下 3k-6k PHP中级工程师 1-3年6k-10k PHP高级工程师 3年以上  ...

  9. 第三个视频作品《小白快速入门greenplum》上线了

    1.场景描述 第三个视频作品出炉了,<小白快速入门greenplum>上线了,有需要的朋友可以直接点击链接观看.(如需购买,请通过本文链接购买) 2. 课程内容 课程地址:https:// ...

  10. 学Java必看!零基础小白再也不用退缩了

    程序员们!请往这儿看 对于JAVA的学习,可能你还会有许多的顾虑 不要担心 接着往下看吧 学Java前 一.数学差,英语也不好是不是学不好Java? 答案是:是~ 因为你在问这个问题的时候说明你对自己 ...

随机推荐

  1. 第2-1-2章 传统方式安装FastDFS-附FastDFS常用命令

    目录 3 安装配置 3.1 安装GCC 3.2 安装libevent 3.3 安装libfastcommon 3.4 安装FastDFS 3.5 安装fastdfs-nginx-module 3.5 ...

  2. 开源项目在线化 中文繁简体转换/敏感词/拼音/分词/汉字相似度/markdown 目录

    前言 以前在 github 上自己开源了一些项目.碍于技术与精力,大部分项目都是 java 实现的. 这对于非 java 开发者而言很不友好,对于不会编程的用户更加不友好. 为了让更多的人可以使用到这 ...

  3. uniapp/微信小程序 项目day03

    一.商品列表 1.1 获取数据 首先能够进入商品列表的途径 传的数据有 了解了这个之后就可以开始了,先创建分支 创建编译模式,并分配初试数据 这个时候就可以获取数据了 需要的数据 所以在发起请求之前需 ...

  4. Appscan的安装破解以及使用

    本文简单介绍Appscan的安装和使用. 一.下载安装 可自行百度下载相关安装包(因较高版本的破解资料比较难找,建议下载9.0版本). 双击.exe安装文件进行安装,在弹出的安装指引中各选项默认安装即 ...

  5. C#使用正则表达式来验证是否是16进制字符串

    /// <summary> /// 判断是否为16进制字符串 /// </summary> /// <param name="hexString"&g ...

  6. Gitlab 和 jenkins 搭建遇到的坑

    1 Gitlab 端口默认 80 所有其他程序提前把端口腾空 2 Gitlab 配置的是pub 公钥 3 java版本要在1.8以上 4 Jenkins 配置私钥 5 需要配置各个目录的workspa ...

  7. 【Shell案例】【for循环、seq生成】3、输出7的倍数

    描述写一个 bash脚本以输出数字 0 到 500 中 7 的倍数(0 7 14 21...)的命令 方法1:in方式循环 [if的括号是中括号,中间的条件要有空格] [循环体用do和done配对] ...

  8. 【Shell脚本案例】案例5:找出CPU/内存率占用高的进程

    一.背景 找出占用高的进程 使用脚本编写找出占用CPU的进程 二.分析 1.查看进程 top 输入后按C,就可以列出 其他: ps aux 2.思路 awk进行排序,如top10 即ps aux |a ...

  9. 使用Typora写博客,图片即时上传

    背景 习惯使用markdown的人应该都知道Typora这个神器,它非常简洁高效.虽然博客园的在线markdown编辑器也不错,但毕竟是网页版,每次写东西需要登录系统-进后台-找到文章-编辑-保存草稿 ...

  10. 认识一下 Mobx

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:霜序(掘金) 前言 在之前的文章中,我们讲述了 React ...