c#高级编程第六版读书笔记

1.对象方法参数传递

  参数可以通过引用或值传递给方法,在变量通过引用传递给方法时,被调用的方法将得的就是这个变量,所以在方法内部对变量进行的任何改变在方法退出后仍旧发挥作用.而如果变量是通过值传递给方法的,被调用的方法得到的是变量的一个副 本,也就是说大方法退出后,.对一次量进行的修改会丢失.注意字符串是不同的.因为字符串是值不能改变的.在方法调用中,对字符串所做的任何改变都不会影响原来的字符串.

  public void action(int i,intp[] list)

  {...}

  在方法内部对i进行的修改不会影响到外部变量,对list所做的更改会影响到外部变量

  通过值传送变量是默认的.也可以迫使参数通过引用传递给该方法,为此.要使用ref关键词

2.构造函数

   系统默认的构造函数只能把成员字段初始化为标准的默认值(如果字段在类内部已初始化,则不重新初始化),如:引用类型为空引用(=null),数值类型为0,bool型为false.

3.只读字段

  常量的概念就是包含一个不能修改的值的变量,但是,常量不必满足所有的要求,有时可能需要一些变量,其值不能改变,但在运行之前其值是未知的.c#可用只读字段(readonly)解决.

4.继承与重写

  把一个基类函数声明为virtual,同样适用于属性,该函数就可以在派生类中重写了.

  class MybaseClass

  {

       public virtual string VirtualMethod()

       {

                 return "this method is virtual and defined in mybaseclass"

        }

  }

继承

   class myDrivedClass:MybaseClass

   {

     public override string VirtualMethod()

     {

         return "..."

     }

   }

   如果签名方法在基类或派生类中都进行了声明.但该方法没有声明virtual和override,派生类就会隐藏基类方法(书96页),可用new关键词隐藏基类方法.如:

class MybaseClass

  {

       public  string VirtualMethod()

       {

                 return "this method is virtual and defined in mybaseclass"

        }

  }

  继承

class myDrivedClass:MybaseClass

   {

     public new string VirtualMethod()

     {

         //在继承方法中可用base关键字调用基类方法.如:

         // return base.virtualmethod()+"ok";

         return "..."

     }

   }

5.派生类构造函数(第100页)

  不论类继承多少次,构造函数的调用顺序是先调用system.obejct.再按照层次结构自上向下进行.直到到达编译器要实例化的类为止,还要注意在这个过程中,每个构造函数都初化始它自己类中的字段,这是它的一般工作方式.也就是说基类的构造函数总是最先调用,派生类的构造函数可以在执行过程中调用它可以访问的基类方法.
   在编译器试图为派生类创建构造函数时,默认两个类的构造函数必须具有相同的签名.

如果签名不同,则需用base关键字指定执行的构造函数

6.接口

   接口不能有构造函数或字段,接口定义也不允许包含运算符重载,在接口定义中还不允许有声明成员上的修饰符,接口成员总是公共的,不能声明为虚方法或静态方法

posted @   沉默杨  阅读(446)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示