C#总结知识点

模块一:知识点梳理

输入输出表达式---数据类型---变量与常量 ----运算符---语句-----数组与集合---函数--结构体;

模块二:输入与输出

输入:  console.resdline();   console.read();

输出:  console.writeline() ;     console.write();

模块三:数据类型

A  分类: 值类型  对象类型(引用类型)

1 值类型:

基本类型: int shart long  double float decimal  char bool

字符串的字面值:

\’ 表达为单引号        \’’  双引号     \\ 反斜杠    \0 空格   \a 蜂鸣   \b退格   \f  换页  \n 换行    \r 回车    \t 水平制表符   \v垂直制表符

★技巧1 String  a=@”www.baidu.\ddeg\\frfr\.com.“(@“包含特殊符号的要输出的语句”);

复杂类型  datetime类  math 类

Datetime:表达形式

Math:表达形式

2对象类型

String 类  表达形式

定义  字符串名字 str;

1) str.lenth(); //获取字符串长度; str.toupper/str.lower(); 将字符串全部调整为大写/小写; str.replace(要被替换的字符,要去替换的字符) 返回已经替换完成的字符串;

2) Str.trim()  str.trimstar()  str.trimend()  分别为去除字符串前后空格 去除字符串前空格 去除字符串后面空格

3)截取指定位置字符串:str.substring(起始位置int,截取长度int)返回值为字符串

string a="rfrrggfsggrrfgsfghggs";

string  s = a.Substring(4, 4);

Console.Write(s);

4)str.indexof(); str.lastindexof();

例子 : string a="rfrrggfsggrrfgsfghggs";

int w = a.IndexOf("r");//某个字符串在这个字符串中第一次出现的位置

int e = a.LastIndexOf("r");//某个字符在这个字符串中最后一次出现的位置

Console.Write(w); //返回值为整数

Console.WriteLine(e);

5)bool 型(返回bool值 true or fause)

例 :string a="rfrrggfsggrrfgsfghggs";

bool w = a.EndsWith("g");//是否以 g结尾

bool e = a.StartsWith("f");//是否 以f 开头

bool t = a.Contains("e");//是否包含e

Console.Write(w);//返回值为ture 或者是fause

Console.WriteLine(t);

Console.WriteLine(e);

3 类型间的转换

数据转换:

计算机运算的时候,必须使用同一类型数据进行运算。

如果不是同一类型数据,则需要进行类型转换。

类型转换的分类:

1.自动转换:只要不会出现丢数据的可能,就自动转。

byte->short->int->long->float->double

2.强制转换:凡是可能会出现丢数据的情况,就需要强制转。

在被转换的数据左边加上小括号:(要被转换成的数据类型)

使用Convert.ToXXXX(要被转换的数据)

例子:

int d = (int)3.14;

int d = Convert.ToInt32( 3.14);

float f = (float)3.14;

float f = Convert.ToSingle(3.14);

如果是字符串转换基本数据的话必须使用Convert.ToXXX(字符串);

模块四  变量与常量

  1. 常量

Const +数据类型 +常量名   例 const  PI  ;注:变量名一般为全部大写;

B  变量

命名规则:  a 变量名可以由 字母,数字 下划线, @,汉字  组成

b 变量名首字符 不能是数字;

c 变量名不能为关键字;

(一)变量——U盘

1.定义:

数据类型 变量名[=值[,变量名=值]];

变量名的命名规则:a.组成。b.首字符。c.关键词

2.赋值:变量名=值;

3.取值:直接使用变量名。

注意变量的作用域:变量只在它所在的花括号里面起作用,出了花括号就访问不到了。

1.在同一个花括号内,不能出两个重名的变量定义。

2.如果多重花括号,外层和里层都出现同一个变量的定义,则使用的时候遵循“就近原则”。

(二)常量——光盘

在程序只能定义的时候赋值,在运算的时候无法修改值(不能放在等号的左边)

1.定义:

const 数据类型 常量名 = 值;   //一般来说常量名统统大写。

2.取值:直接使用常量名。

3.分类:符号常量和字面常量。

int a = 10;  //10就是字面常量

const int PI = 3.14; //PI-符号常量;3.14字面常量

模块五 运算符

运算符:

一、算术运算:

+ - * / % ++ --

注意:

1.做除法运算的时候,如果两个操作数同为整数,则运算结果也是整数,不会出现小数。

2.上面这些运算,如果两个操作数不同是一类型,在运算的时候会自动进行类型转化。

取余用途有哪些?

1.判断能不能整除?

2.用来把数变成某个范围之内的数。

自增与自减操作:

语法:

变量名++; ++变量名;

int a = 4;

a++;  ++a;

意义:

a++ ++a <==> a = a+1; <==> 1.把a的值取出来。2.把a的值加上1。3.把加完的结果再赋给a。

5++ 为什么不正确?

const int b = 5;

b++; 为什么不正确?

++a与a++的区别?

1.如果这一行语句中,只有唯一的++或--运算,不再有其它运算的话,前++后++效果是一样的。

2.如果这一行语句中,除了++ --外,还有其它运算。

前++,最先执行。后++,最后执行。

例如:

int a = 5;

int b;

b = a++; //相当于b = a; a = a+1;

Console.WriteLine(a); //a=6

Console.WriteLine(b); //b=5

b = ++a; //相当于a = a+1;b=a;

Console.WriteLine(a); //a=6

Console.WriteLine(b); //b=6

二、关系运算符:6个

== != > >= < <=

所有关系运算符,运算的结果都是bool型。

int a = 5;

int b = 6;

Console.WriteLine(a == b); //False

Console.WriteLine(a != b); //True

Console.WriteLine(a > b); //False

Console.WriteLine(a < b); //True

Console.WriteLine(a >= b); //False

Console.WriteLine(a <= b); //True

注意:不要把== 写成 =

三、逻辑运算符

&& || !

int a = 5;

int b = 6;

a>6 && b<=10 //结果是False

18<a<35 ==> a>18 && a<35

a<18 或 a>35 ==> a<18 || a>35

&&——只有两个条件都成立,结果才成立True;如有一个不成立,或者两个都不正确,结果就False

||——除非两个都不成立,结果才不成立False;只要有一个成立,结果就成立True。

!——取反运算。

int a = 16;

bool b =  a>18 && a<35; //b == false

bool c = !(a>18 && a<35); //c == true

四、其它运算

= -- 赋值运算,把右侧的值赋给左侧。因此它的左侧只能是变量,不能是常量或表达式。

+= -= *= /= %= --- 复合运算符。

int a = 5;

a += 10;  // <==> a = a+10; //1. 执行a+10。2.把相加的结果赋给a;

?: -- 条件运算符。

逻辑(关系)式?式子二:式子三;

int a = 10

int b = 5;

bool c = a>b?a:b;

模块六  语句(顺序 循环 分支)

五、语句:顺序、分支、循环

(一)分支:

1.if

(1)if(条件){}

(2)if(条件){} else {}

(3)if(条件){} else if(条件){}...else{}

(4)if(条件){if(条件){}..else{}} else{if(条件){}...else{}}

案例:

a.18岁抓当兵。

b.相亲

c.体重

d.平年闰年 ——判断一个日期是否正确。

e.一元二次方程根的情况。

2.switch

switch(表达式)

{

case 常量:

...

break;

case 常量:

...

break;

default

break;

}

(二)循环:

1.基本语法:

(1).for

for(初始条件;循环条件;状态改变)

{

循环体

}

循环的四要素:。。。。。。

(2).while

初始条件

while(循环条件)

{

循环体

状态改变

}

2.循环嵌套:

for(;;)

{

for(;;)

{

}

}

3.应用:

a.打印星号。好多图形。

b.穷举。把各种可能的情况都走一遍,筛选出符合条件的。

●100以内所有与7有关的数。

●买牙刷,洗发水,香皂

●百鸡百钱,百马百石

●兑硬币

●填+-号使等式成立的。

●侦察兵

************关与本文中的例题不明白可以加793059747 相互探讨一下************

c.迭代。找到规律,使用变量不断累计的功能实现运算。不断求中间结果,直到得出最终的结果。

●100以内所有数的和

●猴子吃桃

●小朋友算年龄

●折纸-珠峰

●棋盘分米

●富翁与程序员

●兔子

模块七 数组与集合

六、数组与集合

(一)数组:同一类型,连续存储

1.一维:——豆角

定义: 数据类型[] 数组名 = new 数据类型[长度]{初始值列表};

赋值:数组名[下标] = 值;

取值:数组名[下标]

与for语句配合用:——使用循环来控制下标。

数组常用的属性:Length。要搞清下标与长度的关系。

应用:

●球员打分。

●彩票

●排序

●二分法查找。

2.二维:——表格

定义:数据类型[,] 数组名 = new 数据类型[行数,列数]{初始值列表};

赋值:数组名[行下标,列下标] = 值。

取值:数组名[行下标,列下标]

与循环配合用:

for(;;) //循环行

{

for(;;)//循环列

{

}

}

应用:

●推箱子。

3.锯齿:——数组中的数组

定义:

1.定义数组中的数组:数据类型[][] 数组名 = new 数据类型[行数][];

2.定义一维数组:

3.把一维数组赋给数组的数组。

★★★★锯齿数组详解★★★★

.锯齿数组——数组的数组

定义:

a.定义数组的数组:

int[][] a = new int[3][];

b.定义一维数组:

int[] b1 = new int[4]{1,2,3,4};

int[] b2 = new int[3]{5,6,7};

int[] b3 = new int[5]{9,10,11,12,13};

c.把一维数组加到数组的数组中去

a[0] = b1;

a[1] = b2;

a[2] = b3;

使用:

a[行][列] = 。。。

a[行][列]

a.Length == ???  3

a[0].Length = ????? 4

(二)集合:不用连续

1.链表

弱类型:ArrayList list = new ArrayList(); //using System.Collection;

强类型:List<类型> list = new List<类型>(); //using System.Collection.Generic;

2.哈希表

弱类型:Hashtable table = new Hashtable();

强类型:Dictionary<key类型,value类型> table = new Dictionary<key类型,value类型>();

栈,队

★★★★集合详解★★★★

集合:

(1)链表——每个存储的值都会分配一个索引号,通过索引号可对每个元素赋值或取值。

弱类型:

using System.Collection;

ArrayList list = new ArrayList();

强类型:

using System.Collection.Generic;

List<类型> list = new List<类型>();

list.Clear();

list.Add(value);

list.Insert(索引号,value);

list.RemoveAt(索引号);

list.Count;

(2)哈希表——每个元素都由两部分组成,一部分叫key,一部分叫value

弱类型:

using System.Collection;

Hashtable table = new Hashtable();

强类型:

using System.Collection.Generic;

Dictionary<类型,类型> dic = new Dictionary<类型,类型>();

dic.Clear();

dic.Add(key,value);

dic.Remove(key)

dic.Count;

模块 八 函数  结构体

个人理解 函数 与结构体只是为了美化已经完成的程序提高程序的利用率,或者是说为了提高工作效率完成的;

函数

函数 :结构与枚举:

(一)结构体——自己定义的复杂的类型。

什么是结构体?为什么需要用到结构体?

定义:

struct 结构体名

{

public 数据类型 成员变量名;

public 数据类型 成员变量名;

public 数据类型 成员变量名;

...

}

使用:

结构体名 变量 = new 结构体名();

变量.成员变量 = 值

变量.成员变量

说明:结构体的成员,还可以用其它结构体来定义。

(二)枚举:使用枚举来替代一些难以记忆的整数。

枚举和整数之间可以相互强制转换。

定义:

enum 枚举名

{

成员名[=整数],

成员名[=整数],

成员名[=整数],

....

成员名[=整数]

}

结构体:

★★★★结构体详解:★★★★

结构体:

由多种简单类型,组合成一种复杂的类型。使用这种复杂的类型来解决生活中的实际例子。

一、结构体定义:

struct 结构体的名子

{

public 类型名 变量名;

.....

}

struct Student

{

public string NO;

public string Name;

public double YuWen;

public double ShuXue;

public double WaiYu;

public double ZongFen;

}

二、结构体的使用:

1.使用结构体来定义变量

Student s1 = new Student();

2.给结构体变量赋值。

s1.Name = "";

s1.NO = "";

3.给结构体变量取值。

s2.YuWen

三、复杂结构体。

使用结构体类型的成员变量,来组成更大的结构体。

1.先造个小的结构体

2.使用小的结构体来组合成更大的结构体。

struct Student

{

public string NO;

public string Name;

public ChengJi Score = new ChengJi();

public LianXiFangShi Contact = new LianXiFangShi():

}

struct LianXiFangShi

{

public string DianHua;

public string QQ;

public string YouXiang;

public string ZhuZhi;

}

struct ChengJi

{

public double YuWen;

public double ShuXue;

public double WaiYu;

public double ZongFen;

}

复杂结构体的定义:

Student s1 = new Student();

复杂结构体成员变量的使用。

s1.NO = "s001";

s1.Name = "张三";

s1.Contact.DianHua="18500002222";

s1.Contact.QQ="88888888";

s1.Contact.YouXiang="88888888@qq.com";

s1.Contact.ZhuZhi = "地球";

s1.Score.YuWen=89;

s1.Score.ShuXue=99;

s1.Score.WaiYu=79;

s1.Score.ZongFen = s1.Score.YuWen+s1.Score.ShuXue+s1.Score.WaiYu;

最新文章

  1. JSP实现word文档的上传,在线预览,下载
  2. DayPilot 7.8 DLL去DEMO字样下载
  3. KnockoutJS 3.X API 第一章 简介
  4. 《C陷阱与缺陷》之1词法"陷阱"
  5. javaScript事件(三)事件对象
  6. Integer 和int
  7. (转)用AGG实现高质量图形输出(三)
  8. [设计模式] 13 责任链模式 Chain of Responsibility
  9. C语言 小游戏之贪吃蛇
  10. UITextView/UITextField检测并过滤Emoji表情符号
  11. 关于标准C语言的预定义宏
  12. 【小技巧】C#的saveFileDialog和openFileDialog的用法总结
  13. 这可能是php世界中最好的日志库——monolog
  14. 5.Lock接口及其实现ReentrantLock
  15. glusterfs 步骤
  16. 使用LXD搭建Web网站
  17. Centos 7.3下 Linux For SQL Server安装及配置介绍
  18. SpringCloud注册中心(Eureka)
  19. 带权单源最短路[稀疏图](Dijkstra)
  20. vue脚手架搭建流程

热门文章

  1. sql server 复制 需要有实际的服务器名称才能连接到服务器……
  2. C#实现XML文件数据库存储
  3. Cocos2d-x利用CCHttpRequest获取网络图片并显示
  4. Thread Pool Engine, and Work-Stealing scheduling algorithm
  5. AutoCAD 2007在win8.1安装出现——错误1606。无法访问网络位置Autodesk\AutoCAD2007\R17.0\chs\的解决
  6. 设置AD用户属性
  7. Request对象的主要方法
  8. [CentOS]CentOS/RedHat/Fedora的Proxy设定(yum,wget,,rpm)
  9. 从零开始学android开发-项目打包发布
  10. Windows平台下libevent库的使用