• C#面向对象(四):其他面向对象知识


    前文链接:

    C#面向对象(一):明确几个简单的概念作为开胃菜

    C#面向对象(二):封装和继承

    C#面向对象(三):多态

      今天是这个系列的收尾文章了,来谈谈其他面向对象知识。

    1.嵌套类

      1.1概念

      在 C#中可以将一个类定义在另一个类的内部;外面的类叫“外部类”,内部的类叫“嵌套类”

    嵌套类和普通类相似,只是声明的位置比较特殊。

      1.2注意事项

      如果想实例化内部类的话, 需要使用 外部类名.内部类名 的方式访问到内部类。

    //声明一个嵌套类的对象.
    
                Person.Web w = new Person.Web();
    
                w.webName = "擅码网";
    
                w.webUrl = "www.mkcode.net";
    
                w.Show();

    2.匿名类anonymous class

      2.1概念

      如果某个类的实例对象只会使用到一次, 可以使用匿名类的方式创建这个对。

      不需要定义类, 我们就可以创建一个对象。这样的类一般用于存储一组只读属性

    2.2代码格式

    var p = new { Name = "Monkey", Age = 100 };
    
    //匿名类.
    
    var mk = new { Name = "lkk", Age = 100, Address = "山东" };
    
    //mk.Name = "李开坤";
    
    Console.WriteLine("姓名:{0}, 年龄:{1}, 地址:{2}", mk.Name, mk.Age, mk.Address);

    只读的属性

    assigned to 赋值

    3.密封类sealed class

    概念:被sealed关键字修饰过的类不可以被继承,也就是说不能有子类;这样的类, 通常被称之为“ 密封类” 。

    4.Object 类

    概念:在 C#语言中, Object 类是所有类的父类,在C#中所有的类(内置的,我们自己创建的)都直接或者间接继承自Object类。

    Object 是类object是类型。(类与系统关键字的语法颜色区别

    第一个是一个类,第二个是一个类型

    小写的是大写的别称。

     

      额外的四个就是object类里有的方法。

      重写 ToString 方法:我们经常会在自己的类中重写 ToString 方法, 将类中的信息打印输出。

    目的是:辅助调试和开发。

    public override string ToString()
    {
    return string.Format("{0}--{1}--{2}", name, age, address);
    }

    5装箱与拆箱

    概念:

    装箱:值类型-->引用类型

    拆箱:引用类型-->值类型

    两种类型只有存在继承关系的时候, 才可能出现装箱或拆箱操作。

                int a = 10;
                Console.WriteLine(a);
                object b = a;           //装箱操作. 值类型-->引用类型.
                Console.WriteLine(b);
                a = (int)b;             //拆箱操作. 引用类型-->值类型.
                Console.WriteLine(a);

    注意事项

    装箱和拆箱本质上是数据存储在栈空间与堆空间之间变更,因此频繁的装箱或拆

    箱会降低代所以代码中尽量少用装箱或拆箱操作。

    6.预编译指令

    什么是预编译指令?

    预编译指令也叫预处理指令, 在程序正式编译之前执行。

    这些指令不会转化为可执行代码中的命令,但是会影响编译过程的各个方面。

    7.对象初始化器

    概念

    在一个类中, 我们通常使用构造方法来对属性进行赋值,完成对象的初始化。

    但是当一个类中的属性很多很多的时候,不可能为各种情况都定义构造方法,这

    个时候可以使用“ 对象初始化器” 来完成属性的赋值。

    语法格式:

    类名 对象名 = new 类名(){属性名 = 值; 属性名 = 值};

                Person p1 = new Person() { Name = "lkk", Age = 100 };
                Person p2 = new Person() { Name = "擅码网" };
                Person p3 = new Person() { Age = 111, Address = "山东" };
  • 相关阅读:
    FW : Unit of Measure related settings in SAP
    SAP PCA: 转移价格的确定
    SAP 关于贸易伙伴(Trading Partner)区分关联方/非关联方/子公司/第三方
    FSV tables in S/4 HANA OB58 , S_E38_98000088
    SAP Profit Center Table Data
    服务器搭建网站完整教程(宝塔面板+wordpress)
    运营
    undefined reference to `std::cout'等错误
    [c++][chromium]C++做与不做 C++ Dos and Don'ts
    [git]快速迁移git仓库
  • 原文地址:https://www.cnblogs.com/qixinbo/p/8249707.html
Copyright © 2020-2023  润新知