C#基础知识入门概要(自我回顾用)
一,C#是什么?
人与人之间可以用语言进行交流,我们和计算机交流也是通过语言。我们可以通过语言让一个人做一件我们想让他做事情(他愿意的话~),我们能不能让计算机按照我们的意愿来做事情呢?比如我们让计算机进行数学运算,播放歌曲,显示特定的画面等等。人类设计计
C#就是种类繁多的计算机语言的一种,只要我们按照计算机能够理解的规则来设计我们的指令,计算机就可以做它能做到的任何事情。
学习一门计算机语言就是学习它的规则。
二、二进制
计算机作为一种机器其实很单纯,它只能识别0和1两种状态,这是一种机器语言。计算语言的发展经过了机器语言,汇编语言,高级语言的过程。我们学习的各种高级语言都需要经过编译,转换成机器语言计算机才能一步步执行,这就涉及到二进制的概念。十进制逢十进一:0,1,2,3,4,5,6,7,8,9,10,11,12,...;二进制逢二进一:0,1,10,11,100,101,110,111,...;二进制和十进制可以相互转换。
十进制转二进制:
方法:十进制数除以16,商继续除以16直到商为0,每次余数由8,4,2,1中的几个求和可得,则8这几个数对应的位置记为1,其余位置记0。从下往上排列即得这个十进制数对应的二进制数。
举例:
十进制数265 8 4 2 1
除16 商16 余9 1 0 0 1
除16 商1 余0 0 0 0 0
除16 商0 余1 0 0 0 1
则其对应的二进制数为 0001 0000 1001
二进制转十进制:
二进制数从右到左,每4位为一组(最后不足四位补0,编号N从第0组开始,以此类推)和8,4,2,1对应。其中1对应的数字求和再乘以16的N次方,所得的每组数再求和。
举例:
二进制数1000 1101
8 4 2 1 8 4 2 1
1 0 0 0 1 1 0 1
8*16¹+(8+4+1)*16º=141
即其对应的十进制数为 141。
三,开发中常见的术语

四、变量和数据类型
1、数据
计算机存储的数据会分为各种类型,基本类型有4种:int(整数类型)、double(浮点数类型)、string(字符串类型)、char(字符类型)。每种类型有对应的书写规则。
char:字符类型 ‘’
string:字符串类型 “”
int:整数类型 直接书写
double:浮点数类型 直接书写
类型转换
任何类型转string: 数据.Tostring()
string转int:int.Parse(数据)
string转double:double.Parse(数据)
double转int:显式转换 int(数据)
int转double:隐式转换 不采取操作
2、变量
变量代表一块储存数据的内存空间,存储的数据可变。需要先声明,再赋值。
声明:数据类型 + 变量名 举例:int number;
赋值:变量名 = 值 举例:number = 6;
注意事项:申明和赋值变量名相同,赋值的数据类型和声明的数据类型相同。
变量三要素:数据量类型、变量名、变量值。
变量的命名有规则:采用驼峰命名法,做到望文知意。
3、软件中的错误和调试
编写程序错误在所难免,最重要的是能够及时发现错误,通过调试改正,汲取经验以后避免。
常见的错误有3种:编译错误,运行错误,逻辑错误。
编译错误,开发工具会提示,容易发现。运行错误很难发现,需要在调试模式下运行,发现处理。逻辑错误是运行结果与预期不符,这种错误最难发现,需要运用断点调试检查每一步的运行结果,发现错误语句再做处理。
五、运算符和表达式
1、运算符
C#的运算类型按操作数的个数来分类可分为:一元(目)运算、二元(运算)、三元(三目)运算;
按运算符的功能分类可分为:算数运算、逻辑运算、位运算、其他运算。

2、表达式
一条有意义的语句,并且该语句至少包含一个操作数和一个操作符。
六、流程控制
计算机在运行程序时是从上而下运行,有时我们需要改变运行的流程,就需要用到流程控制语句。
常见的流程控制语句有:
if判断:
代码格式:if (条件1)
{代码1}
else if (条件2) //可以有任意数量条
{代码2}
else //可省略
{代码3}
switch选择:
switch (变量或表达式)
{ case 值1:
代码1;
break;
case 值2:
代码2;
break;
default:
代码N;
break;
}
while循环:
while (循环条件) //值、变量、表达式,必须是bool类型
{
循环体
}
do while循环:和while循环的区别:do while 先执行一次程序体再判断条件
for循环:
for (表达式1;循环条件;表达式2)
{
循环体
}
break:结束循环
continue:结束本次循环,进入下次循环
需要牢记每一种流程控制语句的使用规范,注意各种嵌套。
七、数组和集合
数组和集合也是数据的一种,对应有数据类型。
数组声明:数据类型[] 变量名;
赋值:变量名 = new 数据类型 [长度]
集合的声明:List<数据类型> 变量名;
变量名 = new List<数据类型>();
数组初始化器:给数组赋值的同时,指定数组的每一项值.
举例:
int[] nums;
nums = new int[3];
nums[0] = 2;
nums[1] = 5;
nums[2] = 1;
初始化器:
nums = new int[3] {2, 5, 1}; //数组长度必须和初始化的数量相同
简化:
int [] nums = new int[3] {2, 5, 1}; // 长度3可以不写,系统自己会判断
int nums = new int [] {2, 5, 1}
再简化:
int [] nums = {2, 5,1} ; //这种极简写法仅能存在声明时的初始化
错误示范:
int [] nums;
nums = {2, 5, 1};
集合初始化器:变量名 = new List<数据类型>{元素1,元素2,...,元素n}
数组和集合作为特殊的数据形式,有自己的一套读取,修改规则
数组读取:变量名[索引];
数组修改:变量名[索引] = 值;
获取长度:数组名.Length;返回int类型
集合读取和修改与数组一致;
集合添加数据:集合变量名.Add(要添加的数据);
集合插入数据:变量名.Insert(要插入的索引,要插入的数据);
集合删除数据:变量名.RemoveAt(要删除数据对应的索引 ); 变量名.Remove(要删除的数据的第一个匹配项);
数组和集合都可以用for循环和foreach循环来遍历。
foreach为只读循环,循环体中不能更改集合或数组
foreach遍历速度快,执行效率高
for循环遍历速度慢,执行效率低
C#基础知识入门概要(自我回顾用)的更多相关文章
- Linux基础知识入门
[Linux基础]Linux基础知识入门及常见命令. 前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1: ...
- Hibernate入门1. Hibernate基础知识入门
Hibernate入门1. Hibernate基础知识入门 20131127 前言: 之前学习过Spring框架的知识,但是不要以为自己就可以说掌握了Spring框架了.这样一个庞大的Spring架构 ...
- Oracle 基础知识入门
前记: 近来项目用到Oracle数据库,大学学了点,后面基本忘记得差不多了,虽然基本语法跟sql 差不多,但是oracle知识是非常多的. 这里简单说点基础知识,希望后面补上更多的关于ORacle知识 ...
- SpringMVC(一) 基础知识+入门案例
SpringMVC基础知识 1.什么是Springmvc 2.springmvc 框架的原理(必须掌握) 前端控制器.处理器映射器.处理器适配器.视图解析器 3.SpringMVC 入门程序 目的:对 ...
- java学习基础知识入门
基础入门知识(一) 一.java技术的分类 java按照技术标准和应用场景的不同分为三类,分别是JAVASE.JAVAEE.JAVAME JAVASE : 平台标准版,用于开发部署桌面,服务器以及嵌入 ...
- DOM0,DOM2,DOM3事件,事件基础知识入门
事件是javascript和HTML交互基础, 任何文档或者浏览器窗口发生的交互, 都要通过绑定事件进行交互; 事件有DOM0, DOM2和DOM3的区分(别问我怎么少了一个DOM1, 也没找到DOM ...
- 1 python大数据挖掘系列之基础知识入门
preface Python在大数据行业非常火爆近两年,as a pythonic,所以也得涉足下大数据分析,下面就聊聊它们. Python数据分析与挖掘技术概述 所谓数据分析,即对已知的数据进行分析 ...
- HTML基础知识入门
好的,我们开始吧,打开Eclipse,新建一个项目,就叫做Base吧,基础班的意思.注意哦,要建一个JavaWeb项目.右键,new,Dynamic Web Project,如果出来的菜单项没有,就点 ...
- AngularJS实用基础知识---入门必备
前言 今天来和大家学习一下AngularJS-- AngularJS 通过新的属性和表达式扩展了 HTML. AngularJS 可以构建一个单一页面应用程序. AngularJS 学习起来非常简单. ...
随机推荐
- [Python] numpy.sum
import numpy as np #Syntax: numpy.sum(a, axis=None, dtype=None, out=None, keepdims=<class numpy._ ...
- selenium+python自动化79-文件下载(SendKeys)
前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用S ...
- 检测Python程序的执行效率
无意中被问到代码执行效率的问题,那就总结一下检测代码执行效率的几种方式: 一.装饰器 在函数上加装饰器,来得到函数的执行时间. def cst_time(func, *args, **kwargs): ...
- 基于 Lucene 的桌面文件搜索
开源2010年,自己在学习 Lucene 时开发的一款桌面文件搜索工具,这么多年过去了,代码一直静静存放在自己的硬盘上,与其让其沉睡,不如分享出来. 这款工具带有明显的模仿 Everything 的痕 ...
- Python time、datetime
简介: 记录一下 Python 如何获取昨天.今天.明天时间及格式化. 1.今天 In [1]: import time In [2]: print time.strftime('%Y.%m.%d', ...
- outlook更改邮件存储路径
由于司邮箱容量磁盘配额很小,没收几封邮件就提示邮箱容量已满请删除不重要的邮件很是烦人,于是乎就想着怎么把邮件存到本地然后自动删除服务器上的邮件不做备份,这样就不会在提示邮箱容量已满了,就不用担心发不出 ...
- JavaWeb--过滤器Filter (二)
上一小节简单介绍了过滤器的概念和基本结构以及新建过滤器的步骤,本节使用过滤器设计一个小案例 -- 使用过滤器统一处理Post方式下参数值中文乱码的问题. 1.分析 对于有汉字信息处理的Servlet或 ...
- S 导入公司数据
导入公司数据,使用INSERT [Public] ConnectString=host="siebel://10.10.0.46:2321/HC_CRM/SMObjMgr_chs Conne ...
- 再谈C#编码规范
编码规范是老生常谈的问题,现在再看代码规范可能不会再去在意变量,控件的命名方法等,而是更加关注代码的实用性. 首先我们要明白一下几点, 1.代码写出来除了让他跑起来还有个非常非常重要的作用是维护,因为 ...
- spring 控制反转与依赖注入原理-学习笔记
在Spring中有两个非常重要的概念,控制反转和依赖注入:控制反转将依赖对象的创建和管理交由Spring容器,而依赖注入则是在控制反转的基础上将Spring容器管理的依赖对象注入到应用之中: 所谓依赖 ...