zoukankan      html  css  js  c++  java
  • 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#程序基本结构(命名空间、类、方法,块等)及组成元素(语句、标识符、白空间、注释,标点符号等)

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

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

    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 字符,正是这些字符构成了字符串

    转义字符:

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

    v    竖向跳格               退格

          回车                 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类可以提升性能

  • 相关阅读:
    药方
    Git配置
    黄俊俊:做一个有想法的技术人
    刘铁猛:程序员:造阀门前,先蓄满‘情商池’
    Nginx + Tomcat 配置负载均衡集群简单实例
    mysql 用户权限管理详细
    mysql数据权限操作
    搭建分布式系统
    数据库 -- 悲观锁与乐观锁
    tomcat7以下线程控制
  • 原文地址:https://www.cnblogs.com/angelboys/p/7709219.html
Copyright © 2011-2022 走看看