码迷,mamicode.com
首页 > Windows程序 > 详细

C#自学基础

时间:2015-09-21 10:39:06      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:

1.  .net/dotnet:一般指.Net Framewwork框架.一种平台,一种技术

C#一种编程语言,可以开发基于.net平台的应用

 

 

2.  .net  都能干什么

桌面应用程序 Winform

Internet应用程序,ASP.NET/WedServoce

手机开发 wp7

 

3.   C/S 客户机/服务器模式

B/S 浏览器/服务器模式

 

4.  方法在类里面,类在命名空间里面

1个项目只能有Main方法 ,Main方法是我们项目的入口方法

 

5.  变量 语法 数据类型 变量名 =

 

6.  数据类型  数值 整型:int  ;  非整型:double decimal

 

7.  非数值:char ; string

1.int 整型,就是整数

2.double 双精度浮点数 就是小数

3.Char 字符 只能存储一个字符,字符要被单引号引起来

4.String 字符串 存储多个字符,用双引号引起来

5.Decimal 一般用于存储财务数据,数据后面要加一个m

 

 

8. 变量一定要先声明,在赋值,或者声明时直接赋值

 

9. 变量命名 以字母,_,@开头

1.起的变量名不能与C#关键字重名

2.大小写是敏感的

3.同一个变量名不允许重复定义(先这么认为);

 

10. 定义变量时,变量名要有意义

Camel命名法:首个单词的首字母小写,其余单词的首字母大写

Pascal命名法:每一个单词第一字母都大写

 

11. 赋值运算符 =

+号可以连接2个字符串

占位符从0开头,

 

12. C#的转译符由:/+一个字母来组成,来表示一个特殊字符

\”表示引号 \\表示\ 第一个\表示转译

13.  可以在一个字符串的前面加一个@符号,表示@符后面的这个字符串中的\没有转译的意思

 

14. 常用的转译符 \n \b\t \\

\n表示换行

\b表示退格

\t表示对齐

 

15. 强制类型转换 (数据类型名)待转换的值

一切类型都可以转换成string类型

16. C#中异常捕获

Try

{

可能出现错误的代码写在这里

}

Catch

{

出错后的处理

}

17. 如果try中的代码没有出错,则程序正常运行try的内容后,不会执行catch中的内容

   如果try的代码出错,程序跳到catch中内容

 

18.  ++ 自加一,有前加后加

--自减-,有前减后减

列如:Int age=18

Int sum=age++ - 10;  结果为8age++age原值参与运算,

Int age=18

Int sum=++age - 10;  结果为9++age为前加,所以在运算时取age1运算,sum=9

 

 

结论,不管是++age还是age++,结果运算后,age值都进行了+1的运算

 

19.复合运算符 列如:

age=age+3;  》   age+=3;在age的原值上加上3

age=age-3;  》   age-=3;age的原值上减3  

age=age*3;  》   age*=3;在age的原值上乘以上3

age=age/3;  》   age/=3;age的原值上除以3  

age=age%3; 》   age%=3;在age的原值上加上取莫3

 

20. 关系运算符 >  <  ==  !=  >=  <=

Bool 类型 值只有2个 真true flase

 

21. 逻辑运算符 

1)&&  ||   ! 

 

逻辑&& (与)

Bool 类型一般情况下都是关系表达式

整个逻辑与运算的结果也是bool类型

 

表达式1

表达式2

逻辑与结果

True

True

True

True

False

False

False

True

False

False

False

False

 

 

 

2)逻辑|| (或)

Bool 类型一般情况下都是关系表达式

整个逻辑与运算的结果也是bool类型

 

表达式1

表达式2

逻辑与结果

True

True

True

True

False

True

False

True

True

False

False

False

    3)! 逻辑非

表达式为true ,结果为false,表达式为false,结果为true

 

    22.if结构

a) 基本语法  :if(条件)

b)               {语句;语句2;};

  23if-else

a) 基本语法   :if(条件)

b)                {语句1;}

c)              Else

d)              {语句2}

 

   24.switchcase语法:switch(表达式/变量)

                 {

Case 1:语句块1;

Break;

                 }      

 

   25.If-else-if switch的比较

a) 相同点:都可以实现多分支结构

b) 不同点:

  1. witch:一般只能用于等值比较
  2. If-else-if:可以处理范围也可以用于等值比较

 

 

   26.while语法

a) While(条件)

  1. {循环体}

1)程序执行过程

判断循环条件是否成立,执行循环体

如果条件不成立,则跳出循环

 

 

  27.do while循环

a) 语法 do

{

循环体

  1. }
  2. While(循环条件);

 28.For循环

a) 语法 for(表达式1;表达式2;表达式3)

b) {

  1. 循环体

c) }

 29.break 语句;

a) 用于switch-case,用于跳出switch结构

b) 用于循环(while/do-while/for),用于跳出循环,当在循环中,执行到break,不管条件是否成立,跳出当前循环

30.Continue

a) 用于循环中,当程序执行到continue,立即跳出本次循环(continue后面的语句本次不在执行)

b) 直接跳到循环条件判断,如果条件成立,则进行下一次循环,条件不成了,立刻跳出循环

31.枚举 

a) Enum 枚举类型

b) {

  1. 1,
  2. 2

c) }

d) 枚举定义了一种新的数据(枚举)类型,定义枚举时列出这种所能拥有的所有值

e) 枚举一般定义在命名空间内,跟类是同一级别

f) 使用枚举的好处,限制了不同部门的程序员对变量的赋值,

g) 对用户智能提示

h) 把一个字符串转换成一个枚举类型

i) (枚举类型)(Enum.Parse(typeof(枚举类型),“待转换的字符串”));

32.常量

a) Const 类型 常量名=常量值

  1. 常量必须在定义的时候赋值

33.结构

a) 访问修饰符 struct 结构名

b) {

  1. 定义结构成员

c) }

d) 定义结构体一般跟类在同一个级别

e) 在结构内部定义小变量时,在前面加上public

f) 定义的结构类型也是一种类型

g) 通过结构的变量名加点,来访问结构内部的属性(小变量名)

 

34.数组:可以帮我们一次声明多个同一类型的变量(这些变量在内存是连续存放的)

a) 语法  数据类型[] 数组名称=new 数据类型[数组的长度];

b) 数组长度:就是要一次声明的变量的个数 

c) 如何对元素进行读和写

d) 写:数组名[下标]=

e) 读:数据类型 变量名=数组名[下标];

f) 声明数字类型的数组的时候,每个元素的初始值为0

g) 第二种声明语法  数据类型[] 数组名称={直接赋值}

h) 对于一个数组,我们都可以通过 数组名.Length 来得到一个整数,这个整数就是数组的长度

i) .net给我们提供了一种对数组排序的方法:

j) Array.Sort(要排序的数组名); 对数组进行升序排序

k) Array.Reverse(要排序的数组名)//反转数组

 

35.冒泡排序

 

对一系列元素进行排序(由大到小排):冒泡排序法

10 20 30 40 50 60 70 80 90    对这9个数进行由大到小排序

20 30 40 50 60 70 80 90 10    1趟比较 比较了8次  

30 40 50 60 70 80 90 20 10    2趟比较 比较了7次  

40 50 60 70 80 90 30 20 10    3趟比较 比较了6次  

50 60 70 80 90 40 30 20 10    4趟比较 比较了5

60 70 80 90 50 40 30 20 10    5趟比较 比较了4次  

70 80 90 60 50 40 30 20 10    6趟比较 比较了3次  

80 90 70 60 50 40 30 20 10    7趟比较 比较了2次  

90 80 70 60 50 40 30 20 10    8趟比较 比较了1次  

9个数需要比较8

那么:n个数,需要比较n-1

i趟要比较的次数为: n-i

如果要从大到小排序,那么在比较中,让前一个元素与后一个元素进小于号的比较,如果成立,则交换位置.

设当前元素为k  数组名arr

If(arr[k]<arr[k+1])

{

int temp=arr[k];

arr[k]=arr[k+1];

arr[k+1]=temp;

}

36.方法

a) 定义: [访问修饰符] [static] 返回值类型 方法名(参数列表){ 方法体}

b) []符号表示可选项

c) Static修饰的方法用类名.方法名();

 

37.局部变量:

a) 在方法中定义的变量成为局部变量,其作用域从定义开始到所在的大括号结束为止

b) 一旦变量定义到外面,这个变量就可以被这个类的所有方法使用

c) 通过参数调用

38.参数与返回值

a) 对于一个没有返回值(void)的方法,里面默认有一个return

b) 程序一旦遇到return立刻退出本程序

39.如果一个方法有返回值,注意2个地方

a) 返回值不能是void

b) 方法定义上一旦有返回值那么return就不能省去,必须在方法中显示的retur加上要返回的值

c) 那么在调用这个方法时,前面就要定义一个和返回值类型相同的变量;来接受返回值

d) 注意:通过返回值进行返值,只能返回一个值

 

40.一般是在同一个类中,方法名相同,参数的个数不同或参数的对应位置不同,构成方法重载

41.out ref

a) out:注重于传出,在调用者中。可以不赋初始值,就传给方法

b) 在方法(被调用者中)中,一定要先赋值,在使用

c) ref:既可以传入,又可以传出,在传参前,必须先赋初始值

42.C#产生随机数

a) Random r=new Random();

b) r.Next(最小值,最大值);大于等于最小值,小于最大值

43.属性---对象具有的各种特征

44.方法---行为,动作,执行的操作

45.---类是模子,确定对象将拥有的特征(属性)和行为(方法)

46.类是对象的类型

47.类的定义

a) [访问修饰符] class 类名

b) {

  1. 成员;

c) }

48.类的实例化

a) 类名 实列名=new 类名();

 

49. 访问修饰符:在C#中有4个访问修饰符

public:可以在任何地方被访问

internal:只能在本项目中被访问

private:只能在本类中访问

preotected:只能在本类和子类中被访问

 

50. 在一个类中定义变量或方法时,没有写访问修饰符,那么默认的访问修饰符为private

在类这个级别,不写访问修饰符默认为internal

 

51. 定义一个变量。在这个变量中含有get/set两个方法,我们就叫做属性

允许外部访问的变量一定要声明为属性

52. 读写属性:具有get/set方法的属性叫做读写属性

只有get方法的属性称为只读属性,这个属性只能读取,不能赋值

只有set方法的属性称为只写属性,这个属性只能写,不能读取(只写属性用的很少)

 

53. 当我们实例化一个类时,系统会自动对这个类的属性初始化,

数字类型初始化成0/0.0

String类型初始化成null

Char类型初始化成\0

 

 

54. 使用构造方法的好处

1)对多个属性进行赋值时,不需要重复的写实例化

2)可以保证用户在new一个对象的时候必须对某一个属性进行赋值

3)和第二类相似,在创建对象时,对只读属性进行初始化

 

55. 当我们定义好一个类之后,如果没有写构造方法,系统会自动给我们加一个默认的无参数构造方法,什么也不做,我们也看不到

 

56. 构造方法是一个特殊的方法,他的名字和类的名字相同,并且没有返回值,连void也不用加,我们一旦手写一个构造方法,系统默认的为我们添加的无参的构造方法就不会为我们添加了

 

57. 要实例化一个类必须调用他的构造方法

 

58. 要像抛一个异常,可以这样写

    throw new Exception“错误信息”)

 

 

59.  params 使用 params 关键字可以指定采用数目可变的参数的方法参数。

可以发送参数声明中所指定类型的逗号分隔的参数列表或指定类型的参数数组。 还可以不发送参数。 如果未发送任何参数,则 params 列表的长度为零。

在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。

,   params只能在参数的最后面

 

60.   命名空间是解决类的冲突的,只能在一个命名空间里面调用类

如果想调用别的命名空间的类,有2个方法

一个是在眉头用using调用

或者直接通过命名空间点出类名

 

61.  String类型可以看成char类型的只读数组

 

62.  String

比较字符串方法

ToLower();//转换成小写

ToUpper();//转换成大写

Equals();//比较方法

一切对象都可以调用.ToString()方法

Split()分割字符串

Replace()替换字符串

Substring()截取字符串

Contains()过滤字符串

IndexOf()判断字符串的位置

 

63 数据类型可以分为值类型和引用类型 

如果2个值类型进行相等赋值后,改变其中一个值类型的值,另一个不受影响,(不会改变)

如果2个引用类型进行相等赋值后,改变其中一个对象的值后,另一个也发生了改变

 

64. 值类型 int long float char bool enum struct

65. 引用类型 类 接口 数组

66.  字符串比较特殊,由于其不可改变性,虽然是引用类型,但2个字符串经过相等赋值后,改变其中一个值(不是改变他们同时指向的字符串,而是又产生了一个字符串赋给这个变量),另一个不会改变

 

67. 继承符号  : 语法 子类:父类

表示子类继承了父类,子类可以调用父类成员

c#中,所有类都直接或间接的继承了object

 

68. 集合类 ArrayList

1)一般情况下,对于集合:添加是Add  删除看有没有remove/removeAt

2)插入 insert  清除:Clear/removeAll

3)上面仅为一般规律

4)

  HashTable 键值对

查询 hashTable[键或者值]

添加 hashTable.Add();

foreach遍历

 

foreach(数据类型 变量名 in 集合)

{

 

}

 

69. 泛型集合

List<数据类型>

Dictionary<键的数据类型,值的数据类型>

 

泛型集合跟普通集合的区别,泛型集合规定了数据类型,而普通集合不规定

70. 定义方法时,有static修饰的方法,叫做静态方法.没有static修饰的方法叫实例方 法.(这个方法必须经过实例化后,用实例名.方法名()调用)

调用方式不用:

静态方法:   类名.方法名();  直接调用.

实例方法:  先实例化,再通过实例名+点+方法名去调用.

列:Random r = new Random();  r.Next(1,7);

 

71. 静态字段或实例字段(在类里,方法外定义的一个变量):调用和上面一样.

实例方法中的可以直接访问静态的和实例的方法和属性..

静态方法中不可以直接访问实例方法和属性,要想访问必须先实例化.

 

72. Winform知识:

窗体:

Text:左上角文字

BackColor背景颜色

BackGroundImage 背景图片

ControlsBox

Icon左上角的图标

MaximizeBox:最大化按钮是否显示

MinimizeBox:最小化按钮是否显示

StartPosition:起启时窗体默认显示的位置

TopMost:本窗体是否在最前面

FormBorderStyle:窗体外框的样式

事件:

Load事件:窗体显示之间触发的一个事件,一般用于对窗体上内容进行初始化

和鼠标相关的事件:

click单击  doubleclick双击

MouseMove:当鼠标移动到该控件上时触发.

 

控件常用的属性:Button为例.

属性:

Cursor:改变鼠标的显示样式

Font:字体相关设置

ForeColor:前景颜色

Location:控件在窗口控件中的位置

Size:控件的大小

Enbale:控件是否可以显示

Visible 设置可见性

73. 窗体显示:

New一个实列

实列.show();

Show() 非模态窗体

showDialog()模态窗体

Hide:隐藏窗体,如果在想显示出来,直接调用show方法

Close()关闭窗体,如果在想显示出来,只能创建一个新的窗体,再调用show方法

 

Lable 控件:用于向用户显示信息

LinkLable控件:链接直接在chikl事件里面写”System.Diagnostics.Process.Start("http://www.baidu.com");“

 

TextBox: 用于接收用户输入的数据

ScrollBars:设置滚动条

WordWrap:在多行编辑时是否自动换行

事件

Eenter:获得焦点

Leave:失去焦点

PictureBox:用于向用户展示图片

Application.StartupPath 获得应用程序启动时的

ComboBox控件

属性:

Items

DropDownStyle:枚举有3个

1)simple:以列表显示可选值,用户可以选着也可以输入值

2)DropDown 以下拉列表显示可选值,用户可以选择也可以输入

3)DropDownList:以下拉列表显示可选值用户只能选择,不能输入

Timer控件

属性

Interval:触发时间的时间间隔,单位是ms   1000ms=1s

Enbaled

事件

Tick事件

74. GDI(GraphicsDrawingImage)

Graphics gra=this.CreateGraphics()  调用Graphics对象

winform 里面可以通过PaintEventArgs 调用Graphics对象

Graphics gra=PaintEventArgs.Graphics();

 

 

75. HTML背景===body属性

text属性  指定文本文件的颜色

link属性

alink属性

vlink属性

bgcolor属性

background属性

 

当鼠标点击超链接时

鼠标点击前  link

鼠标点击时  alink

鼠标点击后  vlink

 

bgproperties=”fixed” 固定图片属性

 

列表

有序列表

<ol>

<li>第一项</li>

<li>第二项</li>

</ol>

无序列表

<ul>

<li>第一项</li>

<li>第二项</li>

</ul>

自定义列表

<dl>

<dt>项的标题</dt>

<dd>对这个项的解释</dd>

</dl>

 

表格

每一个看到的东西都是块

块儿里面还可以有块

一个大块里面有许多行块

在行块里面又有许多单元格

<table>

<tr>

<td>表格里数据</td>

<td>表格里数据</td>

</tr>

</table>

跨行 colspan

跨列 rowspan

 

表单:凡是让你输入内容,并且根据输入的内容作出反应的这些东西都是表单的一部分

 

语法 form

<form>

<!----------凡是要输入的内容都放在这里------->

</form>

 

Form的属性

Action=”目标地址|

Method=”提交方法”  get(直接通过地址栏传送数据post(通过报文)

 

Form标签里面,每一个标签都应该有name属性和value属性

Input标签

文本框:

<input type=”text”/>

<input type=”text” name=”文本框名字” value=” ”/>

 

密码标签:

输入的内容不显示

<input type=”password”>

文本域标签

<textarea>文本内容  </textarea>

属性 rowcol

 

提交提交按钮标签

<inpyt type=”submit” name=sb ,value=”按钮属性按钮显示的文字的属性”>

 

重设按钮标签

<input type=”reset”/>

清除表单中所有输入的数据,以供重新输入

 

按钮标签

<input type=”button”/>

放置一个按钮,用于触发自定义的事件

 

图像标签

<input type=”image”/>

 

复选框标签

<input type=”checkbox”/>

 

单选框标签

<input type=”radio”/>

 

文本选择标签

<input type=”file”/>

 

列表

<select>

<option></option>

</select>

属性

Size 1或者非1

size属性不为1相当于winform里面的listbox

size属性等于1时相当于winform里面的ComboBox

Mulitiple 表示是否可以多选mulitiple=”mulitiple”

Selected 默认选上了

 

分区标签

<div></div>

<span></span>

 

C#自学基础

标签:

原文地址:http://www.cnblogs.com/WZLYA/p/4825319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!