黑马程序员--C#编程基础

---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ----------------------

 

.net/dotnetc#java

1).net/dotnet.net framework框架,平台,技术

2c#:编程语言

3java:编程语言,技术

.net能做什么

1winform(桌面应用程序)

2asp.net(网站)

3wp7(windows phone 7,手机开发)

       b/s:浏览器/服务器,c/s:客户端/服务器

     IDE

1)IDE(Integrated Development,集成开发环境)

       Integrate:使成为整体 development:发展

       Visual:视觉的 Studio:工作室

     C#3中注释

1) 单行注释://注释内容

2) 多行注释:/*注释内容*/

3) 文档注释:对类和方法进行注释,///

4) #region#endregion:折叠代码

     软件系统依赖关系

C#编程语言等

.net framework类库(FCL

公共语言运行库(CLRcommon language runtime

操作系统

其它:

MSIL(Microsoft Interm ediate language):微软中间语言

     .Net Framework框架

1.net framework类库

webformweb servicewinforms

ado.netxml

基本框架类

2)公共语言运行库(CLR

CLS(公共语言规范,common language specification)

CTS(通用类型系统,commonn type system

JIT(即时编译器,just in time)

     C#中变量的命名规则

1) 必须以“字母(可以是中文)”_@开头

2) 后面必须是“字母”、数字、下划线

3)不能与C#中的关键字重复,区分大小写

4Camal(骆驼)命名法:首字母小写,其后的大写

  Pascal命名法:都小写

   英文单词的缩写都用大写

     C#中“+”的两种意义

1) 数学上的加法运算(两边都是数字类型)

2) 连接的意思(只要有一边是字符串类型)

其它:

{0}占位符可以重复,可以省略

string getReadLine=Console.ReadLine();

     C#中的转义字符(\

\n(换行)\t(制表符)\b(退格)\r(覆盖填充)

在字符串前面加@符号:

1) 字符串里的\ 不再表示转义字符(字符串里2个双引号表示1个双引号)

2)  使字符串可以换行

     运算符

一.赋值运算符

1)二元运算符(==+-=*=/=%=

 

二.算数运算符

1) 二元运算符(+、—、*/%

参与运算的2个操作数类型必须相同,并且运算后的结果的类型也和这2个操作数类型相同

2)一元运算符(++--

前加:++a++a取加1后的值,整个表达式运算完后a自增了1

后加:a++a++取原值,整个表达式运算完后a自增了1

(前减和后减类似)

 

三.关系运算符

1)二元运算符(><==!=>=<=

2)运算结果为bool类型

 

四.逻辑运算符

1)二元运算符(&&||!

2)表达式1 && 表达式2(其中的表达式要能求解为bool类型,一般为关系表达式)

3)短路:false && 表达式2true || 表达式2

其它:

1)三元表达式:bool表达式1 ? 表达式2:表达式3

       表达式2和表达式3的值的类型要想兼容

●数字类型(intdoublefloatdecimal

1)范围:double >float >decimal >int

2)精度:decimal >double >float >int

3)因此:doublefloatdecimal类型的数都可以隐式转换为int类型

               float类型的数可以隐式转换为double类型

●类型转换

一.类型自动(隐式)转换:

1) 参与运算的2个数的类型要兼容

2) 范围小的转换为范围大的,并且不能丢失精度

例:double > int

double c=1.0*a/b (a=10,b=3c=3.333…)

二.强制类型转换(可能丢失精度)

1)参与运算的2个数的类型要兼容

2)(数据类型)要转换的数

       例:int n=(int)PI (PI=3.14n=3)

三.数据意义的转换(ConvertParse)

1)Convert.ToInt32(待转换的字符串)

2int.Parse(待转换的字符串)

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

例:Convert.ToString(任意类型数);任意类型数.ToString()

     异常处理

try

{

       //可能出错的代码

}

catch(子类Exception

{

       //出错后执行的代码

}

catchException

{

       //出错后执行的代码

}

注:程序先从上到下的执行try中的代码:

如果没有出错,则不会执行catch中的代码;

如果执行到某一行代码时出错,则其后的代码不会被执行,而是立即跳到catch中执行catch中的代码;

优化:发生异常时,先判断异常类型是否为“子类Exception”,否则才执行catchException

中的代码;

     条件判断(ifswitch

1) ifbool表达式)

{

        //代码

}

else ifbool表达式)

{

        //代码

}

else

{

        //代码

}

2) switch(表达式)

{

        case 1

               语句块1

               break

        case 2

               语句块2

               break

        default

               语句块3

               break

}

如果几个语句块的内容相同则可简写为:

switch(表达式)

{

        case 1

        case 2

               语句块1

               break

        default

               语句块2

               break

}

注:表达式的值与值1、值2相匹配。都不匹配则执行defalut中的语句(switch:开关)

     循环(forwhile

1whilebool表达式)

{

        //循环体

}

2do

{

        //循环体

}whilebool表达式);

3) for(表达式1bool表达式2;表达式3

{

        //循环体

}

一般情况下:

表达式1             定义变量并赋初值

bool表达式2      关系表达式

表达式3             改变变量的值

已知循环次数一般用for循环

     breakcontinue

一.break

1) 用于switch-case中,跳出switch

2) 用于循环中,跳出break所在的循环

二.continue

1)用于循环中,立即结束本次循环,继续进行下一次的循环

●常量(const

1)常量的作用:

防止对常量的值进行修改

便于更新常量的值

2)常量不能用static修饰,但静态和非静态方法都可以访问常量

3)常量定义的语法:

       [访问修饰符] const 数据类型常量名=值;

●枚举(enum

1)对于同一事物的不同描述(如:男孩、男性、男人等都表示性别为男)

2)枚举的作用:

       限制用户不能随意赋值

       程序员能很方便的根据提示取出枚举里的值

3)自定义一种枚举类型,并指定这种类型的所有值(一般同类定义在同一级别):

       语法:[访问修饰符] enum 自定义枚举名{值1,值2,值3…

4) 枚举里的值不能是int类型

5) 枚举类型的值都可以强制转换成int类型(枚举里值的编号默认从0开始;自定义编号后,后面值的编号是前面值的编号加1

6) 将字符串转换成枚举的成员或“整数”:

(自定义枚举类型)Enum.Parsetypeof(自定义枚举类型),“待转换的字符串”);

7) 检测某个任意类型的值是否能转换成枚举的成员或枚举成员的整数编号:

语法:Enum.IsDefined(typeof(自定义枚举类型)object value)

只有当value能够转换为:枚举的成员或枚举成员的整数编号时,才返回true,否则返回false

     结构(struct

1) 结构的作用:

不需要对同类事物的各种信息进行重复的定义(如对于N个人的姓名、性别、年龄,只需定义一套)

防止对同类事物的各种信息混淆记忆

2) 自定义一种结构类型:

[访问修饰符] struct 结构名{定义结构成员}

3) 结构里的成员可以是变量和方法,其中变量必须用public修饰

4) 结构是值类型,存放到内存的栈里

     数组

1) 一次声明多个同类型的变量,这些变量在内存中是连续存储的

2) 数组声明的语法:

数据类型[] 数组名=new 数据类型[数组长度]

声明时赋值,例如:

int[] nums=newint[3]{123}

int[] nums=newint[]{123}

int[] nums={123}

3) 数字类型的数组一旦声明,里面的每个元素被初始化为0/0.0

string类型的数组一旦声明,里面的每个元素被初始化为null

char类型的数组一旦声明,里面的每个元素被初始化为\0ASKII码的0

4) 求最大值、最小值时,变量的初始值最好设为待比较的数里面的值(如果设置为0,则当待比较的数都为负数时,最大的就为0了,不正确)

     方法(函数)

1) 方法的作用:复用代码

2) 定义方法的语法:

[访问修饰符] [static] 返回值类型方法名([参数]

{

        //方法体;

}

3) 变量定义在方法中称为局部变量

变量定义在类的里面,方法的外面,就叫做类的字段

4) return:用于方法中,返回值并立即退出当前方法

5) 方法的重载(overload):

方法的名称相同,参数的个数或对应位置的类型不同(与方法的返回值类型无关)

6) 方法只能返回一个值,但可以用outref修饰的参数来实现返回多个值:

1out修饰的参数:引用传递(地址传递);用于传出值;在方法里必须对out修饰的参数变量赋初值,在调用方法时可以不对out修饰的参数变量赋初值;

2ref修饰的参数:引用传递(地址传递);即可以传出值,也可以传入值;

3)默认的参数(没有outref修饰的参数):值传递(复制传递);

7)长度可变参数(params修饰的数组类型的参数):必须在参数列表的最后

     调试、运行

1) F5:启动调试;

Shift+F5:停止调试;

F10:逐过程(调试时不进入方法,但方法会执行);

F11:逐语句(调试时进入方法,方法会执行);

Shift+F11:跳出当前正在执行的方法

2) Ctrl+F5:开始执行(不调试)

 

---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ----------------------

你可能感兴趣的:(黑马日记)