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

C#编辑基础笔记

时间:2014-12-09 19:04:47      阅读:1116      评论:0      收藏:0      [点我收藏+]

标签:winform   style   blog   http   io   ar   color   os   使用   

目录

1.     .NET .NET Framework是一种多语言的平台,一种技术. 而c#是基于其上面的一种语言。    1

2.     Winform 桌面应用程序[从.net平台上面开发的]    1

ASP.NET Internet应用程序    1

3.两种架构:    1

4. Visual Studio 也叫Visual Studio.net 简称<VS>    4

5.    解决方案可以有多个项目,    4

6. 快捷键: Ctrl +shift +n 新建项目    4

7. 基本架构: 引用命名空间    5

8. 类文件是以.cs结尾的!    6

9.     注意在编辑的时候一定要及时保存!    6

10.    学习两句话:    6

11: 重置开发环境【工具---导入与导出----重置所有】    6

12. 代码写完之后,先生成(F6)【不用启动程序,只查找出所写程序的错误之处。】,后运行(F5)。    6

13.bin文件夹中的Debug中存放生成的程序文件;    7

14.     单行注释: //    7

15.     叠折一段代码    7

16.    公共语言运行时(CLR) - 能够理解MSIL;    7

17.    .NET Framework    8

18:可以从文件中新建项目,也可以从解决方案中新建项目.    9

19:项目启动项的设定【解决方案,】->属性->选择当前为启动项】    9

20:【卸载项目】在项目上右击-》卸载当前项目    9

21. 数据类型:    9

22. 【RAM】:称为内存,断电后存储的东西丢失;    10

23. 注意:char类型不能为空    10

24. decimal 定义变量    10

25. 变量命名规则:    11

26."+"法运算符的使用:    12

27. 练习题:    12

28. 占位符:    12

29.两种错误形式:    13

30.    电话一般使用string类型    13

31.    两个数字交换    13

32.    输入语句:    13

33.     练习:问用户喜欢吃什么水果,假如用户输入"苹果",则显示"哈哈,这么巧呀,我也喜欢苹果"    14

34.    常见的转义字符:    14

35.    int a=1,b=2,c=4;    15

36.    1. 定义两个数分别是10和20,打印出两个数的和!    15

37.    两种类型兼容    15

38.    类型转换:    16

39    练习    17

40:出错代码捕获机制    17

41.    a=a+1和a++比较:    17

42.    ++a;前自增就是先自增,后使用!    18

43.    一元运算符优先级>二元运算符的优先级!    18

44.能够改变变量中的值为[=],[++/--]三种;    18

45.任何一个关系表达式运算的结果是个bool类型{是真还是假}    18

46. 关系运算符>逻辑表达式    19

47.    让用户输入张三的语文和数学成绩,输出一下判断是否正确,正确为True,错误为False    19

48.    if 结构:    19

49.    让用户输入年龄,如果输入的年龄大于18岁,则给用户显示你已成年    20

50.    注意:字符串不能简单的转化成int类型!也就是说:不能用显性转换字符串!    20

51:Switch-case语句    20

52:if-else-if与switch的比较    21

53.    盖茨买了一筐鸡蛋,如果坏蛋少于5个,他就吃掉,否则他就去退货!    21

54.bool能转化成数值类型    23

55.    自动排版快捷键: 全选+Ctrl + k + f.    24

56. 练习:提示用户输入密码,如果密码是"888888"则提示正确,    24

57.调试:    25

58.    习题:    25

59.    放置标志    26

60.while语法:    26

61.    输入班级人数,然后依次输入学员成绩,计算班级学员    26

62.    do    27

63.    明天小兰就要登台了,老师说再把明天的舞蹈跳一遍,    27

64.    用while计算1到100之间证书的和;    27

65. 调试:    28

66.    for(1;2;3)    28

67.    习题:    28

68.    break用于循环中,退出当前循环。    29

69.循环输入5个人的年龄,,求出5个人的平均年龄,当输入的年龄<0,或者>100则立即终止程序    29

70.    三元表达式:    29

71. 跳转语句:    30

72.    const 类型 变量 = 值;    30

73.    枚举:    30

74.    窗体应用:    31

75.结构体:    32

76练习;    32

77.     1kb=1024B;    33

78. 习题:    33

79.    数组语法:    33

80.    我们经常说的下标就是所谓的【索引】    35

81.    清屏:    35

82.    函数(方法)是将一堆代码进行重用的一种机制!    35

83. 无    35

84.    方法的定义:    35

85.    return立即退出本方法!    36

86.    如果一个方法中一旦有参数,呢么调用者就要传参数,并且传参数的个数与位置上的类型必须一致!    36

87.    写一个方法,判断年份是否是闰年!    36

88.变量的作用域【变量的生命周期】    37

89.    注意:在方法中尽量不要提示用户,因为这样做,你的方法适用范围就变低了!    37

90.方法的重载:    37

91.    out 参数和ref参数返值    38

 

 

1.     .NET .NET Framework是一种多语言的平台,一种技术. 而c#是基于其上面的一种语言。

    C# 是一种高级编程语言

2.     Winform 桌面应用程序[从.net平台上面开发的]

    ASP.NET Internet应用程序

3.两种架构:    

C/S 客户机(Client)/服务器模式(Server)连接服务器的一种通讯!

B/S 浏览器(Browser)/服务器模式(Server)也叫做网站

桌面应用程序 ---C/S

web应用程序 --- B/S

4. Visual Studio 也叫Visual Studio.net 简称<VS>

    IDE【集成开发环境 (Integratesd Development)这就是我们熟知的Visual Studio.net

5.    解决方案可以有多个项目,

    一个项目可以有多个文件,

    一个文件中可以有命名空间,

    一个命名空间可以有多个类,

    一个类中可以有多个方法,

    

6. 快捷键: Ctrl +shift +n 新建项目

            ctrl + f     查询        

            F5 启动调试

            F6                    生成解决方案

            F10 逐过程

F11                逐语句

            ctrl + home 到文档的最前面!

            ctrl + end 到文档的最后面!

        

7. 基本架构: 引用命名空间

                    :

                    :

                     定义一个命名空间

{    

                类

                {    

                方法!

}

}

    例如:namepace 项目名------【命名空间】

        {

            class Program-----【类】

            {

                static void Main(string[] args)------【方法】

                {

                }

            }

        }

 

8. 类文件是以.cs结尾的!

    项目是以.csproj结尾的!

    解决方案是以.sln结尾的!

Main方法是程序的入口方法!

9.     注意在编辑的时候一定要及时保存!

10.    学习两句话:

        Console.WriteLine("hello world!"); -----光标换行

        //基本的输出函数!

        Console.ReadKey();------输出光标不换行

        //任意按一个键退出程序!

11: 重置开发环境【工具---导入与导出----重置所有】

12. 代码写完之后,先生成(F6)【不用启动程序,只查找出所写程序的错误之处。】,后运行(F5)。    

 

13.bin文件夹中的Debug中存放生成的程序文件;

14.     单行注释: //

     块注释 : /**/

     文挡注释: /// 对类和方法进行注释

    

15.     叠折一段代码

        #region

         代码!

        #endregion

    

16.    公共语言运行时(CLR) - 能够理解MSIL;

    MSIL微软中间语言

    .NET Framework 类库 (FCL)

    .net 在电脑上的运行顺序:

                            应用程序

                                |

                            .NET Framework

                                |

                             CLR

                                |

                             电脑    

 

17.    .NET Framework

        .NET Framework 类库

            ASP.NET Winforms

                         |

        ADO.NET【访问数据库】 和 XML

                                 |

                                基本框架

                                    |

         CLR -> CLS  CTS  JIT

    解释执行语言         |       |   |

                 公共语言规范    |   |

                       通用类型系统     |

                             即时编译器    

18:可以从文件中新建项目,也可以从解决方案中新建项目.

19:项目启动项的设定【解决方案,】->属性->选择当前为启动项】

20:【卸载项目】在项目上右击-》卸载当前项目

     【重载项目】在项目上右击-》重载当前项目

21. 数据类型:

            int [整形]*10位以下!

            uint

            long

            ulong

            byte

            sbyte

            short

            ushort

            double [精确度在15~16位]

            decimal [金钱]【28~29位】

    非数字类型:

            object

     char

            string

            bool        

22. 【RAM】:称为内存,断电后存储的东西丢失;

一般说的存在内存中,指的是我们电脑上的硬盘;

23. 注意:char类型不能为空

        例如:char ‘‘; 错误的

                  char ‘ ‘;正确的

24. decimal 定义变量

    例如:

     decimal monney=1524.12m/M;

         double sum = 45.8 后面可以加F/f/不加!

         当加上f/F时,就成为45.7999992370605;

         而不加的还是:45.8;

bubuko.com,布布扣

25. 变量命名规则:

1. 必须以"字母" _或@符号开头!

         2. 后面可以一跟"字母"、"数字"、"下划线"

    注意:

            1. 变量名不能与关键字相同

            2. 在C#中区分大小写

            3. 同一变量名不能重复定义;

            4. 一般以Camel命名法来命名变量!

而方法名一般用Pascal命名法 每个单词的首字母都大写;

关键字

    bubuko.com,布布扣

Camel 命名法:

                第一个单词的首字母要小写,其他的要大写!

Pascal 命名法:

                每个单词的首字母都要大写

                

    注意: 如果使用英文单词的缩写,都使用大写!

26."+"法运算符的使用:

            作用:1. 数学中的加法运算符!

                 2. 有连接的意思!

        

        例如;

            int age ;

            string name;

            Console.WriteLine("你好"+name +"你的年龄是"+age);

            

            

27. 练习题:

    1. 定义3个变量,分别储存一个人的姓名(张三),年龄(28)和工资(7600.3),然后在屏幕上显示,我叫XX,今年X岁了,我的工资是XX元!

    2.定义一个变量存储一个人的年龄(18),要把这个人的年龄修改为20岁,最后把这个年龄输出!

    

28. 占位符:

1. 数字从零开始,可以越过数字a,直接输入数字b。

     2. 占位符<=变量的的个数!

      

    

29.两种错误形式:

            1. 语法错误

            2. 运行时错误

30.    电话一般使用string类型

    同一字符串不能使用折行!

31.    两个数字交换

        t=a;

        a=b;

        b=t;    

32.    输入语句:

        Console.ReadLine();

注意:用户输入的都是字符串!,因此接受用户输入的都定义为字符串!

33.        练习:问用户喜欢吃什么水果,假如用户输入"苹果",则显示"哈哈,这么巧呀,我也喜欢苹果"

        练习:请用户输入姓名,然后在屏幕上显示"你好XXX";

 

 

 

 

 

34.    常见的转义字符:

                \‘ 单引号

                \\         反斜杠

                \n         换行

                \r         回车

                \v         垂直制表符

                \"         双引号

                \0         空字符

                \b         退格

                \t 水平制表符

                \f         换页

        在字符串前面加一个@符号有两种意义

                    1. 字符串中如果有\,则不再理解为转义字符

                    2.    使字符串的可以换行。

                    这个时候,要是想加入"",则一对双引号表示一个双引号!                

35.    int a=1,b=2,c=4;

    int arge;

    arge=(a+b+c)/3;

    Console.WriteLine(arge);

    

36.    1. 定义两个数分别是10和20,打印出两个数的和!

    2. 计算半径为5的圆的面积并打印出来!

    某体恤的价格为35元/件,裤子的价格为120元/条,小明在该店买3件T恤和2条裤子,倾计算并现实小明应该付多少钱?

    3.    假如商店为小明打8.8折,那么小明应该付多少钱呢?

37.    两种类型兼容

         int 和double 兼容

        目标类型大于源类型

         double>int;

38.    类型转换:

强制类型转换:

转换格式:

(数据类型名)待转换的值

    即在元素的前面添加上"(int)/(double)/(decimal)"    

数据类型的转换

(类型)变量名=Convert.Toint32(转换类型)

     int s=Convert.ToInt32(待转换的字符串)

另一种转换:

        变量名.ToString()。只能将数据类型转化成为字符串类型!

小结

  • 隐式类型转换:常用于数值型之间,将范围小的数值类型转换为范围大的数值类型
  • 显式类型转换:常用于数值型之间,将范围大的数值类型转换为范围小的数值类型,使用小括号运算!
  • Parse()方法:将字符串转化成其他字符类型!
  • Convert类:任何基本类型之间的相互转化!
  • int.Parse(string) 将一个字符串转换成int类型!

        每一个类型都有.parse方法!

39    练习

        让学生输入其姓名和语文\数学\英语,编程求总分和平均分。

    并在屏幕上显示:XX你的总分为XX分,平均分为XX分

    

    编辑实现计算几天(如46天)是几周零几天。

    

    编辑实现107653秒是几天几小时几分钟几秒

40:出错代码捕获机制

Try

{ 【1】需要验证的出错代码 }

Catch

{ 【2】出错后的处理 }

若执行程序,执行了【1】代码,则【1】中代码正确,若执行了代码【2】则【1】中的代码出错;

41.    a=a+1和a++比较:

        a++要比a=a+1的运算效率高!    

42.    ++a;前自增就是先自增,后使用!

    a++;后自增就是先使用,后自增!

43.    一元运算符优先级>二元运算符的优先级!

bubuko.com,布布扣

44.能够改变变量中的值为[=],[++/--]三种;

45.任何一个关系表达式运算的结果是个bool类型{是真还是假}

数据类型【bool】

结果

.true

.flase

46. 关系运算符>逻辑表达式

逻辑表达式:

&& || !

关系表达式:

  • < > = != <= ==

47.    让用户输入张三的语文和数学成绩,输出一下判断是否正确,正确为True,错误为False

    1. 张三的语文和数学成绩都大于90分

    2.语文和数学有一门是90分的!

    3.判断闰年;

闰年的条件:1.能被400整除,

                          2.能够被4整除,但不能被100整除;

48.    if 结构:

        顺序结构

        分支结构(判断结构)

        if(条件)

        {

            语句1;

        }

        else

        {

            语句2;

        }

49.    让用户输入年龄,如果输入的年龄大于18岁,则给用户显示你已成年

    如果张三的语文成绩大于90并音乐成绩大于80,或者语文成绩等于100并音乐成绩大于70,则奖励100元

    让用户输入用户名和密码,如果用户名为admin,密码为mypass,则提示登录成功

50.    注意:字符串不能简单的转化成int类型!也就是说:不能用显性转换字符串!

51:Switch-case语句

语法:【遇到break,直接跳出switch语句】

switch(表达式)

case 值1:语句快1;berak;

case 值2:语句快2;break;

default :语句快3;break

}【执行过程,首先判断表达式,然后在根据case进行判断,选择那个case,若没有则执行default语句;】

注意:break不能省略!

52:if-else-if与switch的比较

相同点:都可以实现多分枝语句;

不同点:switch一般只能用于等值比较;if-else-if可以处理范围

53.    盖茨买了一筐鸡蛋,如果坏蛋少于5个,他就吃掉,否则他就去退货!

 

要求用户输入两个数字a,b,如果a能被b整除或者a加b大于100,则输出a的值,否则输出b的值!

 

对学员的结业考试成绩评测(考虑用if好还是用if-else好)

 

        成绩>=90:A

    90    >成绩>=80:B

    80    >成绩>=70:C

    70    >成绩>=60:D

        成绩<60:E;

54.bool能转化成数值类型

        using System.Text;

        using System.Threading.Tasks;

        namespace bool类型能否转换成数值类型

        {

            class Program

            {

                static void Main(string[] args)

                {

                    bool bin=false;

                    int min=Convert.ToInt32(bin);

                    Console.WriteLine(min);

                    Console.ReadKey();

 

                }

            }

        }结果是:0;    

55.    自动排版快捷键:    全选+Ctrl + k + f.

56. 练习:提示用户输入密码,如果密码是"888888"则提示正确,

    否则要求在输入一次,如果密码是"888888"则提示正确,否则提示

    错误!

    

    提示用户输入用户名,然后在提示输入密码,如果用户名

    是"admin"并且密码是"888888",则提示正确,否则,如果

    用户名不是"admin"则提示用户名不存在,如果用户名是

    admin,则提示密码错误!

    

    提示用户输入年龄,如果大于等于,则告知用户可以查看,如果小于岁,则告知不允许查看,如果大于等于10,则提示用户是否

    继续查看(yes、no),如果输入的是yes,则提示用户请查看,

    否则提示"退出,你放弃查看";

    

 

57.调试:

逐过程:F10;

        逐语句; F11;    

在调试程序的时候,如果用到调用函数,则必须逐语句(F11),不能再用逐过程(F10),因为进不去!

 

58.    习题:

        李四的年终工作评定,如果定为A级,则工资涨500元

        ,如果定为B级,则工资涨200元,如果定为C级,工资不变,如果

        定为D级工资降200元,如果定为E级,工资降500元!

        设李四的原工资为5000,请用户输入李四的评级,然后显示李斯的工资!

59.    放置标志

    也就是定义一个bool类型!

60.while语法:

        while(条件)

        {

            语句!;

        }

        

61.    输入班级人数,然后依次输入学员成绩,计算班级学员

的平均成绩和总成绩

    老师问学生,这道题会做吗?如果学生回答会了,则可以

放学了!如果学生不会做(n),则老师在讲一遍,再问

学生是否会做了.....

直到学生会了为止,才放学!

直到学生会或老师给他讲了10遍,还是不会都要放学!

 

    2006年培养学员8万人,每年增长25%,请问按此增长

    速度,到哪一年培训学员人数达到20万人?

62.    do

{

    循环体;

}while(循环条件);

63.    明天小兰就要登台了,老师说再把明天的舞蹈跳一遍,

如果填的不好,则重跳一遍!

64.    用while计算1到100之间证书的和;

    要求用户输入用户名和密码,只要不是:admin、88888

    就一直提示用户名或密码错误,请重新输入。

    不断的要求用户输入学生姓名,输入q结束!

    

    不断要求用户输入一个数字,然后打印这个数字的二倍!

    当有用户输入q的时候,程序退出!

    

    不断要求用户输入一个数字,(假定用户输入的是整数),当用户输入end的时候,显示刚才输入的数字中最大的值    

 

    张三先唱一遍表演的歌曲,老师觉得张三歌曲不过关,就

    让张三在唱一遍,老师满意则张三可以下课,不然则需要再唱一遍,再问老师是否满意。。。

65. 调试:

    设置断点

    单步运行

    观察变量

注意:

    可以对变量进行监视

66.    for(1;2;3)

{

    循环体;

}

    当i定义在for循环中,则i只能内部调用!

67.    习题:

    1.    求1-100间的所有偶数和?

    2.    找出100-999间的水仙花束!

    3.    输出九九乘法表(循环嵌套)

    水仙花数:是一个三数,例如:abc=a*a*a+b*b*b+c*c*c;

习题:

        请输入一个值:

            根据这个值可以输出一下加法表:

                0 + 6 = 6

                1 + 5 = 6

                2 + 4 = 6

                3 + 3 = 6

                4 + 2 = 6    

                6 + 0 = 6    

68.    break用于循环中,退出当前循环。

    continue 进行下一次循环!

69.循环输入5个人的年龄,,求出5个人的平均年龄,当输入的年龄<0,或者>100则立即终止程序

    在while-break,让用户一直输入用户名和密码,当密码户用户名分别是:admin;888888;时,则提示登录成功!

    1-100之间的整数相加,得到累加值大于20的当前数!

    1-100之间不能被7整除的所有数的和!    

70.    三元表达式:

        表1?表2:表3;

        注意:表达式2和表达式3必须兼容!

 

71. 跳转语句:

        break;        continue;        goto(不建议使用,因为破坏了程序的结构!);

72.    const 类型 变量 = 值;

例如:        const double PI=3.14;

常量不能定义为静态量;也就是说const前面没有static

对于一般的变量来说,静态方法只能调用静态变量,而静态的变量可以被任意范围内的方法调用

好处:可以使我们修改数值时变得简单;

73.    枚举:

    自己可以重新定了一种类型,并且在定义了这种类型时我们可以指定其中的所有的值;

    语法

    enum 自己起的类型名称{值1,值2,值3。。。}

    注意:1.定义枚举的时候,一般和类是一个级别!{类中也可以,但定义的这    个类型,只能在这个类中使用!}

        2.在定义枚举类型是不需要""。

    枚举的作用

     *限制用户不能随意赋值,只能在定义枚举时列举的之中选择

*不需死记每一个值是什么,只需要选择相应的值;;

 

        枚举的使用

        枚举类型 变量;

        变量 = 枚举类型.值;

将字符串转换成枚举类型!

例如:

        变量 = (枚举类型)(Enum.Parse(typeof(枚举类型),用户输入的字符串))

注意:

这里之所以要强制类型转换是因为,用户输入的是字符串类型,而字符串中的"男"和枚举类型中的"男"是不一样的!

    枚举类型的变量都可以强制转换成int类型的!

    定义枚举时,值不能是int 类型;

    枚举值的定义有一个默认的编号,从0开始;

74.    窗体应用:

    MessageBox.Show("中间显示的文本","导航标题","定义按钮","提示图标")

    注意: 当你使用的是枚举的时候,直接按回车键,就可以看到它里面包含的东西!

75.结构体:

    语法:

        访问修饰符 struct 结构名【也是一种类型】

        {

            访问修饰符 类型 变量;

        }

        结构中可以访问方法!而在C/C++里面是不允许的!

        结构体和类是同一级别!

        方法内部不允许public的出现!

public 是访问修饰符中最高的一个!即决定访问级别!

 

结构体-定义变量

        结构名 变量;

        变量.成员名 = 值;

76练习;

    1.定义一个结构为MyColor,有三个成员,分别是red,green,blue

        声明一个MyColor类型的变量,并对其成员赋值,使MyColor

        可以表示一个红色。

    2.定义一个结构类型Person,有三个成员,分别是性别,年龄,姓名

        声明两个Person类型的变量名分别标示张三 男 18岁/小兰 女 15岁

77.        1kb=1024B;

1MB=1024kb;

1GB=1024MB;

1TB=1024GB;     4:Bps 传输速度 bit per second

78. 习题:

        1. 一次语文测试后,老师让班长统计每个人的语文成绩,输入全班的全部成绩,然后输出!

79.    数组语法:

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

        数据类型[] 数组名 = { 值1,值2,值3}

        数据类型[] 数组名 = new 数组类型[数据长度]{值1,值2,值3}        

        例如;

        int[] a=new int[5];//通俗点说里面包含了5个类的变量

        int[] a=new int[5]{1,2,2,4,5};

        方括号里面有多少个数字,大括号里面必须有多少个!否则就错误了!但是大括号里面如果没有数的话,是不会出现错误的!

        例如; int[] a=new int[5]{1,2,3,5} 这句话是错误的!

        int[] a={1,2,3,4,5};

        int类型的数组一旦声明,里面的元素就全被初始化为0

        我们可以通过: 数字名.length来访问数组的长度!

bubuko.com,布布扣

80.    我们经常说的下标就是所谓的【索引】

81.    清屏:

    Console.Clear();

82.    函数(方法)是将一堆代码进行重用的一种机制!

    方法一般定义在类中!、

    方法名适运用pascal命名法!

    静态方法 --------static

83. 无

84.    方法的定义:

        语法;

    【访问修饰符】 【static】 返回值类型 方法名(形参)

            {

                方法体;

            }        

调用方法的时候一般是:类名.方法名;

                例如;Console.WriteLine("hello world!");

                所以我们一般调用静态方法的时候,本应该是这样调用!但是在类中调用本类的方法,可以只写方法名();

                

85.    return立即退出本方法!

Reflector是一个查看代码的软件!

86.    如果一个方法中一旦有参数,呢么调用者就要传参数,并且传参数的个数与位置上的类型必须一致!

87.    写一个方法,判断年份是否是闰年!

bubuko.com,布布扣

88.变量的作用域【变量的生命周期】

*在方法中定义的变量全为局部变量,从定义开始到其所对应的大括号结束;

*在整个类中定义的变量称为全局变量!

89.    注意:在方法中尽量不要提示用户,因为这样做,你的方法适用范围就变低了!

bubuko.com,布布扣

90.方法的重载:

    方法重载和返回值类型没有关系!只与参数的类型有关!

参数的个数的不同也可以构成重载!

    注意:任何类型都可以转到object类型;

91.    out 参数和ref参数返值

    注意:用out修饰的变量必须在此方法内进行赋值!

    而ref不需要将对变量进行赋值!

    在传值的时候,必须要将传给的那个变量的前面加上out;

    int.TryParse(string , out 转换后的数字变量);

    TryParse()方法返回值是bool

      

    

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

 

 

      

 

                  

      

          

      

 

 

 

      

 

C#编辑基础笔记

标签:winform   style   blog   http   io   ar   color   os   使用   

原文地址:http://www.cnblogs.com/taidou/p/4153716.html

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