• Net学习日记_基础提高_3


    回顾数组

    交错数组

    交错数组其实就是一维数组。

    不管哪类数组,都是属于引用类型。

    每一个元素都是String数组类型。

    复习可变参数,ref、out

    params是一个可变参数,关键字。(本人认为只要需要输入一个不确定的数组,则使用params修饰,不带有数组的则不用)

    1.params只能修饰方法的参数,参数必须是一个1维数组。

    2.参数列表中最多只能出现1个可变参数,并且必须要在参数列表的最后一个。

    3.调用时候,因为参数是一个数组类型,所以可以传入1个数组

    4.在调用的时候,还可以直接传递参数数组的元素。

    ref

    1.ref是用来修饰方法的参数的

    2.调用的时候,给ref赋值,不能赋值1个常量,只能给变量。变量前面也要加一个ref

    3.在给ref参数赋值的时候,赋值的是变量的地址。

    4.ref在方法中可以对其值不修改。

    5.ref在传递之前必须赋值。

    out

    1.out 必须在方法结束之前为其赋值 / 在方法中如果要使用out必须先为她赋值

    2.out在调用之前,不可以赋值,因为在方法中一定会为其赋值

    3.out侧重于输出。

    类与对象

    对象:现实世界存在的具体实例,皆有各自的状态和行为。

    类:1.具有相似的状态和行为的集合(类一种数据类型)

        2.类是一种复杂的数据类型,是将不同类型的数据和与这些数据相关的操作封装一起的集合体。

    面向对象的思维来设计类:转换思维,多加练习。

    构造方法

    1.访问修饰符一般情况下是public,没有返回值(void都不用写),方法的名称与类名一致。

    2.构造函数在创建这个对象的时候,被自动调用,程序员无法手动调用。

    3.构造函数作用用于初始化对象的值。

    4.构造函数调用其他的构造函数。

    5.this关键字代表当前对象,当前运行在内存中的那一个对象;this.还能调用其他构造函数

    6.构造函数可以重载。

    7.构造函数中可以调用普通的方法,但是请记住,构造函数不能再普通方法中调用。

    8.如果1号构造函数调用另外2号构造函数,在创建类的对象时候,如果调用的是1号构造函数,会先调用1号构造函数,在调用2号构造函数。

    先执行2号构造函数,在执行1号构造函数。

     9.如果程序员没有为类手动的添加任意的构造函数,那么C#编译器在编译的时候,会自动的为这个类生成1个无参数的空方法体的构造函数,隐式构造函数。

    10.一旦程序员为类手动添加了构造函数,那么C#编译器在编译的时候将不会自动为类添加无参数的构造函数

    构造函数调用其他构造函数

    public Dog(int age,string name):this(1)

    {

    .....

    }

    public Dog(int age)

    {

    ....

    }

    部分类

    被partial关键字修饰的类,叫做部分类,伙伴类。

    1.将类里面在成员物理上分开。

    2.使用partial关键字修饰的类,并且类名一样

    3.编译成程序集的时候会将他们编译在一起。

    什么时候要用部分类?

    例子:winform里面Form1里面就分开。

    行为与长相分开。

    namespace XXXX

    {

    partial class Program

    {

    int num;

    }

    partial class Program

    {

    public void Test()

    {

    this.num;  // 能够访问。

    }

    static void Main(string[] args)

    {

    }

    }

    }

    值类型与引用类型

    值类型:

    所有的数值类型、char、bool、枚举、结构

    引用类型:

    string、数组、类

    区别?

    值类型储存在栈内。

    引用类型储存在堆中。

    NULL

    1.只有引用类型的变量才可以是NULL

    2.引用类型的变量的值如果是null,就代表这个变量不指向堆空间中的任何对象。

    常量与只读变量

    const 数据类型 常量名称 = 值;(一旦声明,值不能改变)

    1.不能修改常量的值,必须赋初始值。编译必须赋值。

    2.使用到常量的地方在编译的时候会直接替换成常量的值。

    3.C#编译器在编译时候,声明常量的那句话不见了,在使用常量的地方就用常量的值替代了。

    4.提高运行效率

    Readonly(只读变量)(在类中定义)

    1.只能在构造函数中改值

    2.常量在编译时确定常量的值,只读变量是在运行时确定的值。

    3.建立Readonly值的时候,编译器会放在构造函数里面定义。

    枚举

    枚举是一组具有描述性的名称

    1.定义一组有限的值,不包括方法

    2.对可能的值进行约束

    3.确定数量、确定值的几个取值。

    定义枚举的语法

    访问修饰符 enum 枚举名

    {

    枚举成员

    }

    枚举数表示的整数值:初始值默认从0开始。

     枚举的成员不需要引号引起来,直接写就可以。

    给枚举类型赋值的时候,只能通过枚举点出来。

    枚举是一个值类型。

    每1个枚举成员都对应了1个整型的数值,这数值默认从0开始依次递增。

    通过强制转换得到该枚举值所代表的数值。Direction dir = Direction.West; int i= (int) dir;

    通过强制转换将1个整型的数字强制转换成其所代表的枚举值。int i=3; Direction dir = (Direction) i;

    手动为每1个枚举成员进行赋值。

    字符串转化成枚举值

    string str = "East";

    Direction dir = (Direction) Enum.Parse(typeof(Direction),str,true); // 忽略大小写的转换

    将枚举值转换字符串,ToString();

    将枚举值转换成所对应数值的字符串;string s = d.ToString("d");

    ToString(“?”)知识补充:

    确定枚举值的类型

    enum Direction : byte

    {

      East = 19;

      South = 0;

      West = 2;

      North = 3;

    }

    默认枚举值是int类型,这次可以改变类型(必须是整型,byte、int、short、long)

  • 相关阅读:
    Codeforces Round #719 (Div. 3) 题解
    Codeforces Global Round 14 A~F题解
    AtCoder Beginner Contest 199 题解
    Codeforces Round #716 (Div. 2) A~D 题解
    Codeforces Round #713 (Div. 3) 题解
    Codeforces Round #712 (Div. 2) A~E 题解
    CodeCraft-21 and Codeforces Round #711 (Div. 2) A~E 题解
    CF839 D 莫比乌斯反演
    java存大数和高精度浮点数(BigInteger与BigDecimal)
    java科学计算常用方法(Math)
  • 原文地址:https://www.cnblogs.com/lisong-home/p/7642926.html
Copyright © 2020-2023  润新知