前言

本文写给想学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. day05-JavaScript02

    JavaScript02 8.JavaScript函数 JavaScript函数介绍 函数是由事件驱动的,或者当它被调用时,执行的可重复使用的代码 例子 <!DOCTYPE html> & ...

  2. ubuntu+Django + nginx + uwsgi 部署

    ubuntu+Django + nginx + uwsgi 部署 0.前期准备 注意:以下几件事都必须在激活虚拟环境下完成 运行以下命令生成项目所需的依赖列表,会在项目根目录生成一个requireme ...

  3. Java代码审计sql注入

    java_sec_code 该项目也可以叫做Java Vulnerability Code(Java漏洞代码). 每个漏洞类型代码默认存在安全漏洞(除非本身不存在漏洞),相关修复代码在注释里.具体可查 ...

  4. 第2-3-1章 文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 文件存储服务 1. 需求背景 2. 核心功能 3. 存储策略 3.1 本地存储 3.2 FastDFS存储 3.3 云存储 3.4 minio 4. 技术设计 文件存储服务 全套代码及资料全部完 ...

  5. mindxdl--common--errs.go

    // Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.// Package common the error ...

  6. beego-orm-sqlite

    dao.go ``` package daoimport ( "fmt" "github.com/astaxie/beego/orm" "html&q ...

  7. Java-ArrayList应用

    存储随机数字 ArrayListRandom.java package cn.day04; import java.util.ArrayList; import java.util.Random; p ...

  8. uwsgi 启动配置文件

    # uwsig使用配置文件启动 [uwsgi] # 项目目录 chdir=/myfiles/xxx/xxx/my_project # 指定项目的application module=my_projec ...

  9. nydusd 源码理解(一)

    " 尝试通过 nydus[1] 源码理解工作流程.可能由于代码变动导致和本文记录的内容有出入. 1. 环境准备 git clone https://github.com/dragonflyo ...

  10. Mysql5.6.44版本安装及基本配置

    内容概要 存储数据的演变史 数据库软件应用史 MySQL简介 MySQL下载及安装 MySQL配置 存储数据的演变史 1.文本文件: 文件路径不固定,并且数据格式不统一 2.软件开发目录规范: 规定了 ...