C#知识

程序设计的概述:

       软件包括两个方面:程序、文档;编程语言就是一种用专门的语言来编写计算机程序,C#、C++、Java等;编程语言的发展:机器-汇编-高级。

什么是C#:

       它是一门编程语言,C#语言从C/C++、java等语言演变过来,是一门现代、简单、完全面对对象的编程语言;功能强大能适用于绝大多数系统开发,并能提供超越其他编程语言的开发效率。

关于.Net的理解:

       Microsoft.Net为我们提供了一种崭新的因特网和软件开发环境,软件成为一种服务,任何终端设备和平台都融为一体并具有相似的人机交互界面。建立在CLR和.NET类库基础上的.NET框架是.NET平台的核心组件之一。

C#程序的基本结构:

       导入命名空间( using… )

定义命名空间(namespace…{   })

定义类(class…{   })

主方法(static void Main() {  })

C#标识符规则:

       以字母,下划线开头,其后可接字母,下划线,数字;关键字也可作标识符,但必须在关键字前加@符号;C#中严格区分大小写(age 和Age是两个不同的标识符)

C#程序基本结构(命名空间、类、方法,块等)及组成元素(语句、标识符、白空间、注释,标点符号等)

输出中的转义字符: \n:换行;\t :空格

计算机内存是一系列存放数值的容器。

C#能使用三种内存:堆栈 stack、托管堆 managed heap、非托管堆 unmanaged heap

C#中变量的数据类型:

       C#语言的类型分为值类型和引用类型两类;

       值类型变量存储在堆栈中,引用类型变量存储在托管堆中.

              值类型里面的:简单类型、枚举类型(enum)、结构类型(structs)

              引用类型里面的:类类型、数组类型、接口类型(interface)、委托类型(delegate)

C#语法基础:

       常量:

              符号常量也必须先定义再使用,语法:const 数据类型 常量名 = 常量值;

       运算符类型:

              算数运算符:单目+、-  双目:+、-、*、/、%。

              自运算符:++、--(前缀是先自运算再使用,后缀是先使用再进行自运算)

              关系运算符:>、<、>=、<=、==、!=

              赋值运算符:=、+=、-=、*=、/=、%=。

              逻辑运算符:单目(逻辑非!)双目(逻辑与&&、逻辑或||)

              条件运算符:b?x:y,也称三元运算符,是唯一的一个三元运算符,它需要3个操作数,语法格式:<关系表达式1>?<表达式2>:<表达式3 >

              *:C#中的一般运算符:逻辑运算符、条件运算符等

       数据类型转换:

              隐式转换:一般是低类型向高类型转化,(除几个特殊的到浮点型的转换可能会损失精度外,但能保证数据不会丢失)能够保证值不发生变化 ,比较安全.

显示转换:显示转换可能会出错,一般为溢出;保证转换成功的原则是:高类型数据的值必须在低类型数据值的最大范围内。否则会出现异常.

              强制转换的几种方法:

              使用Convert类下的函数

使用各类型下的Parse函数,将字符串转为任意类型

使用各类型下的ToString函数,将任意类型转为字符串

也可直接在变量前加小括号,指定目标类型进行转换,

语句是程序完成一次完整操作的基本单位。C#的语句:

空语句,只有一个分号、声明语句:声明变量或常量

表达式语句,由一个表达式构成

方法调用语句

标记语句

流程控制语句

特殊语句(using , lock等)

程序的三种结构:顺序结构、选择结构、循环结构。

       顺序结构:按照书写顺序,自上而下,依次执行。

       选择结构:根据判断的不同结论去执行不同的后续步骤。

              If语句简单形式:if

              If语句标准形式:if(){}else{}

              If语句else if形式:if(){}else if(){}else{}

switch(表达式)

{

case  常量表达式1:------注意符号

            要执行的语句1.

            break;

case   常量表达式2:

            要执行的语句2.

            break;

default:

           要执行的语句3.         

           break;

}

.( case后的值必须是常量表达式,不允许使用变量、任何两个case 的值不能相同.)

循环结构:所谓循环就是重复执行一些语句

       C#中的四种循环语句:

while(条件)  //这个条件也为布尔表达式

    {

           循环体语句;

    }

先判断,再循环

do

{

    循环体语句;

}while(测试条件);   先执行循环语句,再判断

do-while与while的区别: do-while它是先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环,如果为假则终止循环。因此对于do-while语句来说至少要执行一次循环语句。而while语句是先判断条件是否为真,为真则执行循环语句,若不为真,则终止循环。因此对于while语句来说可能一次也不会执行循环体语句。

For:

for(循环变量初值;循环终止条件;循环变量增值) {循环体语句}

foreach

一维数组初始化:

 

二维数组初始化:

 

类与对象:

面向对象程序设计的基本概念:

面向对象的程序设计(OOP)的主要思想是将数据及处理这些数据的操作都封装到一个称为类(class)的数据结构中。使用这个类时,只需要定义一个类的变量即可,这个变量叫做对象(Object)。通过调用对象的成员完成对类的使用。

在面向对象理论中,类(class)就是对具有相同特征的一类事物所做的抽象(或者说,归纳)。

对类和对象关系的理解:

类:一组具有相同数据结构和相同操作的对象的集合.  要使用对象,必须先定义类,然后再创建对象。

类的创建:

类是由方法成员,数据成员(变量、常量)等组成。

方法的责任是用来实现类的行为,字段存储类的状态,

面对对象编程有哪些技术:属性、方法、构造函数、继承、接口、重载、多态、委托·、事件。

类的成员访问修饰符:

1.public : 表示任何类都可以不受限制的访问此成员.

2.private:表示类或方法只对本类里面的方法可见。

3.protected:本类可以访问和继承自本类的子类可以访问.

4.internal: 类或方法在程序集内部可见,对于使用程序集合外部类不可见也就是在同一个.NET集合或库中所有类型匀可访问,在同一个命名空间中可以访问.

5.protected internal:同一个.NET集合或继承此类的子类可以访问.

       作用:控制外部对类成员的访问,以达到数据隐藏的目的.

通过类名访问类的静态成员,静态成员属于类拥有,实例成员属于类的对象而不属于类。

类是有数据成员和函数成员组成,他们分别是类的属性和方法

字段和局部变量:

字段:    指声明为类一级的对象或值类型的变量。可以理解为常说的全局变量

局部变量:   指在方法、事件以及构造函数内声明的变量。

相对于简单数据类型,类就是用户自己定义的复杂的抽象数据类型:而相对于简单变量,对象就是复杂的既包括数据又包括方法代码的复杂数据单位。

面对对象编程三大主要特征:

封装——隐藏调用者不需要了解的信息。

继承——简化类的设计。

多态——为名称相同的方法提供不同实现方式的能力。

 

只有get是只读属性,只有set是只写属性。

函数的定义:

class 类名

{

    //静态方法

    [方法修饰符] static  返回值类型  方法名(参数列表)  //方法头

    {

        ……//方法体

    }

 

   //非静态(实例方法)

  [方法修饰符] 返回值类型 方法名(参数列表)  //方法头

  {

       ……//方法体

  }

}

对象的生命周期:

每个对象都有一个明确定义的生命周期,这个生命周期有三个阶段:

1、构造阶段:由构造函数完成,对对象最初进行实例化

2、正常使用

3析构阶段:C#中由析构函数完成:对象使用完后,进行一些清理工作,如释放内存

什么是构造函数:

构造函数是个特别的方法。用来初始化类的对象(包括对象存储的数据)。构造函数必须与类的名字相同,构造函数没有返回值,不能使用void关键字,构造函数由编译器调用,你的代码不能显式调用构造函数。

C#语言中:把对象的初始化工作放在构造函数中,把清除工作放在析构函数中。当对象被创建时,构造函数被自动执行。当对象消亡时,析构函数被自动执行。

实现继承-定义派生类:

  [访问修饰符] class 派生类名称:基类名称

    {

           //程序代码

}

c#仅支持类单继承:一个类只能有一 个父类(基类)

字符串处理:

Char在C#中表示一个Unicode 字符,正是这些字符构成了字符串

转义字符:

\n    换行                  \t    横向跳到下个制表位置,跳格

\v    竖向跳格           \b    退格

 \r    回车                 \f     换页

\\       反斜杠          \’       单引号

String和string的区别:

String类型表示一个Unicode字符的字符串。

string是.NET   Framework中 System.String的别名。

实质:String是类名,string是别名

字符串处理:

(1)字符串的连接

       要么使用“concat”方法,或者使用“+”号操作符。

(2)大小写转换

        将字符串转换成大写:       ToUpper()

        将字符串转换成小写:    ToLower()

(3)字符串的查找

  字符串是不是以指定的字符串结尾:EndsWith()

  字符串里面有没有我们指定的字符串:IndexOf()

          如果找到就会返会字符串的索引号。

          如果没找到就返回-1.

(4)比较字符串

       Equals()

    Compare()

    CompareTo()

(5)复制字符串

Copy()

CopyTo()

(6)截取字符串Substring()

你也可以直接使用索引取出字符串中的某一个字符

       Console.WriteLine(str1[3]);

       //取出字符串中的第四个字符。

(7) 格式化字符串:Format()

原型:public static string Format(string format,object obj)

(8)分隔字符串: Split()

原型:public string[] Split(params char[] separator)

(9)插入和填充字符串

插入:Insert()

填充:PadLetf()/PadRight()

(10)删除字符串:Remove()

(11)替换字符串: Replace()

原型:

(12)删除字符串左右空格:Trim()

(13)字符串长度:Length属性

可变字符串——StringBuilder

StringBuilder类有6种不同的构造方法。

StringBuilder类存在于System.Text命名空间中,常用的操作字符串的方法。

Append()、Insert()、Remove()、Replace()

StringBuilder类与String类的区别:

String对象是不可变的,需要修改时会重新创建对象,分配空间,系统开销较大

StringBuilder则不一样,如只需对字符串做重复修改而不用创建新对象时, StringBuilder类可以提升性能

posted @ 2017-10-22 12:03  AngelBoys  阅读(568)  评论(0编辑  收藏  举报