zoukankan      html  css  js  c++  java
  • C# 类

    1,继承,若基类为带参构造函数,则子类也必须有带参构造函数。
    若基类有无参和有参构造函数,则基类可以不提供有参构造函数。

    2,构造函数可以被重载(在本类中),可以被显示调用(在构造函数的构造列表中),不能被继承,不可以在其它任何地方调用。

    class CTest

    {

      //重载------------------------------------------------------

      CTest(int x, int y){}

      CTest(int x) : this(x, 0) //显示调用2参的构造

      {

      }

      //------------------------------------------------------------

    }

    3,构造函数与析构函数都是不可以被继承的,虽然会被自动调用或在构造列表中手动调用。

    4,静态构造函数

    静态构造函数是C#的一个新特性,当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,自动被调用。

    5,运算符重载

    C#要求所有的运算符重载都声明为publicstatic,这表示它们与它们的类或结构相关联,而不是与实例相关联

    不能被重载的运算符:赋值,?,指针,sizeof,is,typeof,new

    赋值运算符包括 =, +=, -=, *=, %=,

      struct CSTest
        {
            public int posx;
            public static CSTest operator + (CSTest o1, CSTest o2)
            {
                CSTest ost = new CSTest();
                ost.posx = o1.posx + o2.posx;
                return ost;
            }
            public static CSTest operator - (CSTest ot)
            {
                ot.posx = -ot.posx;
                return ot;
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                CSTest ostn1 = new CSTest();
                CSTest ostn2 = new CSTest();
                ostn1.posx = 1;
                ostn2.posx = 2;
                CSTest ostn3 = ostn1 + ostn2;
                ostn3 = -ostn3;
                Console.WriteLine(ostn3.posx);

            }

        }

    6,virtualabstract 区别
        abstract class abclass
        {
            virtual protected void Func() { } //定义虚函数
            abstract protected void FFunc();//定义纯虚函数
        }

        class CA : abclass
        {
            protected override void Func()
            {

            }
            protected override void FFunc()
            {

            }
        }

                                

                            

                    

      

        

      

      

      

      

      

  • 相关阅读:
    Docker私服仓库push 错误
    linux maven安装配置
    centos下载jdk
    Java MVC Controller 中通过不同方式获取 @PathVariable 参数值
    鼠标滑过显示子类浮层
    js如何判断用户是否是用微信浏览器
    纯C语言实现线性链表
    纯C语言实现线性表
    读书笔记 计算机系统--系统架构与操作系统的高度集成 第四章中断、陷入及异常
    读书笔记 计算机系统--系统架构与操作系统的高度集成 第三章处理器实现
  • 原文地址:https://www.cnblogs.com/timeObjserver/p/5926191.html
Copyright © 2011-2022 走看看