C#零基础小白快速入门
前言
本文写给想学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,很新了。
如果你有更好的书,也可以。
书怎么看?
- 前两章了解,学完知道怎么编写控制台程序,也就是怎么写Hello World。
- 后面几章是重点,讲语法,包括变量、表达式、数据类型、流程控制、函数、面向对象、类、集合、泛型。
- 后面是高级内容,可以先不学,也可以选学、有空再学,或者用到了再学。
- 简单学习一下Winform,会使用VS2022创建Winform程序,会拖控件。最简单的,双击控件就可以编写代码了。拖控件干什么?学会拖控件,你就可以发挥自己的想象力了,写个计算器、写个小工具等,我上学那会写过屏保(用VB写的,跟C#是一样的,书上可没有这个,就是发挥想象力,你想到个点子,自然就知道去研究怎么写),写过时钟程序,写过定时自动关机等。
然后
恭喜你!你已经入门了!这意味着什么,只要有公司要你,你就可以干活了!
可是、可是,公司做Web项目,我ASP.NET还没学啊?你只要会照葫芦画瓢,你就能干活了!
当你干了两天活之后,对于ASP.NET的学习,你是买书,还是看视频,随你便。
我以前就是这样入门的,那是十几年前了,现在太卷了。参与项目,才会学的更快。
如果你知道微软的文档怎么看,那更好
例如:
- 《C# 编程指南》 讲C#语法的,还不错
- 《.NET 文档》 讲实在的,对于新手来说,真没法看了,范围有点大,所以我说你知道怎么看最好,不知道以后再说。点击《使用 ASP.NET Core 创建 Web 应用》可以跳转到更具体的《ASP.NET 文档》
- 《ASP.NET 文档》 这个范围稍微小一点,主要讲Web API、ASP.NET Core MVC、Blazor等
- 《使用 ASP.NET Core 创建最小 Web API》 《使用 ASP.NET Core 控制器创建 Web API》 这个范围再具体一点,看完就可以写Web API了,这个有用
入门的关键点
- 学会基本的语法。(不会Lambda表达式不影响写C#代码,要学的话,先记住一种固定写法,几分钟就能学会)(例如我至今不太清楚"协变"与"逆变",但不影响我写代码,报错了,就说明这样写不行呗)
- 学会使用VS2022创建控制台应用程序和Winform应用程序。学会拖控件、设置控件属性和事件、调试。对于VS2022的使用,自己探索,反正都是汉化版的,多点点就行。
- 尝试写点小工具,最好能参与到项目中,不会就百度,百度时,搜索关键词一般是“C# XXX”、“Winform XXX”、“.NET XXX”、“.NET6 XXX”、“.NET Core XXX”。
- 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#零基础小白快速入门的更多相关文章
- php编程零基础如何快速入门。门头沟编程
昨天遇到一个人,说知道thinktphp,不过几年前的事了. 我先跟他讲了下,xyhcms后台功能,各个版块,以及数据库都介绍了一下. 跟他说了一个功能现场实现,说了实现方法. 然后上机操作,发现他表 ...
- 【零基础】快速入门爬虫框架HtmlUnit
迅速的HtmlUnit htmlunit是一款开源的web页面分析工具,理论上来说htmlunit应用于网页的自动化测试,但是相对来说更多人使用它来进行小型爬虫的快速开发.使用htmlunit进行爬虫 ...
- 零基础小白Python入门必看:面向对象之典型魔术方法
- 零基础程序员入门Linux系统 !如何快速恢复系统?
新手在学习Linux系统的时候,难免会遇到命令输错,或系统出错的难题.那么如何快速解决呢?本文就先给你一个后悔药,让你快速备份并恢复Linux系统.本文将以Ubuntu为例,在这之前,你需要一台服务器 ...
- Objective-C基础语法快速入门
Objective-C基础语法快速入门 2010-11-04 16:32 折酷吧 zheku8 字号:T | T 假如我们对面向对象的思维已经C语言都很熟悉的话,对于我们学习Objective-C将会 ...
- 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建
003-PHP基础-01-PHP快速入门 03-PHP环境搭建 1.客户端(浏览器) IE FireFox CHROME Opera Safari 2.服务器 是运行网站的基本 是放置程序代码的地方 ...
- 【个人笔记】002-PHP基础-01-PHP快速入门-02-PHP语言相关介绍输
002-PHP基础-01-PHP快速入门 02-PHP语言相关介绍 1.PHP是什么 Hypertext Preprocessor超文本预处理器 是一种通用开源脚本语言 Personal Home P ...
- 【个人笔记】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年以上 ...
- 第三个视频作品《小白快速入门greenplum》上线了
1.场景描述 第三个视频作品出炉了,<小白快速入门greenplum>上线了,有需要的朋友可以直接点击链接观看.(如需购买,请通过本文链接购买) 2. 课程内容 课程地址:https:// ...
- 学Java必看!零基础小白再也不用退缩了
程序员们!请往这儿看 对于JAVA的学习,可能你还会有许多的顾虑 不要担心 接着往下看吧 学Java前 一.数学差,英语也不好是不是学不好Java? 答案是:是~ 因为你在问这个问题的时候说明你对自己 ...
随机推荐
- day05-JavaScript02
JavaScript02 8.JavaScript函数 JavaScript函数介绍 函数是由事件驱动的,或者当它被调用时,执行的可重复使用的代码 例子 <!DOCTYPE html> & ...
- ubuntu+Django + nginx + uwsgi 部署
ubuntu+Django + nginx + uwsgi 部署 0.前期准备 注意:以下几件事都必须在激活虚拟环境下完成 运行以下命令生成项目所需的依赖列表,会在项目根目录生成一个requireme ...
- Java代码审计sql注入
java_sec_code 该项目也可以叫做Java Vulnerability Code(Java漏洞代码). 每个漏洞类型代码默认存在安全漏洞(除非本身不存在漏洞),相关修复代码在注释里.具体可查 ...
- 第2-3-1章 文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss
目录 文件存储服务 1. 需求背景 2. 核心功能 3. 存储策略 3.1 本地存储 3.2 FastDFS存储 3.3 云存储 3.4 minio 4. 技术设计 文件存储服务 全套代码及资料全部完 ...
- mindxdl--common--errs.go
// Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.// Package common the error ...
- beego-orm-sqlite
dao.go ``` package daoimport ( "fmt" "github.com/astaxie/beego/orm" "html&q ...
- Java-ArrayList应用
存储随机数字 ArrayListRandom.java package cn.day04; import java.util.ArrayList; import java.util.Random; p ...
- uwsgi 启动配置文件
# uwsig使用配置文件启动 [uwsgi] # 项目目录 chdir=/myfiles/xxx/xxx/my_project # 指定项目的application module=my_projec ...
- nydusd 源码理解(一)
" 尝试通过 nydus[1] 源码理解工作流程.可能由于代码变动导致和本文记录的内容有出入. 1. 环境准备 git clone https://github.com/dragonflyo ...
- Mysql5.6.44版本安装及基本配置
内容概要 存储数据的演变史 数据库软件应用史 MySQL简介 MySQL下载及安装 MySQL配置 存储数据的演变史 1.文本文件: 文件路径不固定,并且数据格式不统一 2.软件开发目录规范: 规定了 ...