zoukankan      html  css  js  c++  java
  • C#学习笔记(类的定义)

    1 public

      共有访问。不受任何限制。

    2 private

      私有访问。只限于本类成员访问,子类,实例都不能访问。

    3 protected

      只限于本类和子类访问,实例不能访问。

    4 internal

      内部访问。只限于本项目内访问,其他不能访问。

    5 protected internal

      内部保护访问。只限于本项目或是子类访问,其他不能访问。

    6 abstract

      抽象类

    7 sealed

      密封的类

    修饰符 含义
    无或internal 只有在当前项目中访问类
    public 可以在任何地方访问类
    abstract或internal abstract 类只能在当前项目中访问,不能实例化,只能供继承之用
    public abstract 类可以在任何地方访问,不能实例化,只能供继承之用
    sealed或internal sealed 类只能在当前项目中访问,不能供派生之用,只能实例化
    public sealed 类可以在任何地方访问,不能供派生之用,只能实例化

    8 类和结构

    先看一段实例代码

    namespace Test

    {

      class myClass

      {

        public int val;

      }

      struct myStruct

      {

        public int val;

      }

      class Program

      {

        static void Main(string[] args)

        { 

          myClass objectA = new myClass();

          myClass objectB = objectA;

          objectA.val = 10;

          objectB.val = 20;

          myStruct structA = new myStruct();

          myStruct structB = structA;

          structA.val = 30;

          structB.val = 40;

          Console.WriteLine("objectA.val = {0}",objectA.val);

          Console.WriteLine("objectB.val = {0}",objectB.val);

          Console.WriteLine("structA.val = {0}",structA.val);

          Console.WriteLine("structB.val = {0}",structB.val);

          Console.ReadKey();

        }

      }

    }

    输出结果为:

    objectA = 20

    objectB = 20

    structA = 30

    structB = 40

      对象是引用类型(objectA和objectB)。在把对象赋值给变量的时候,实际上是把带有一个指针的变量赋值给了该指针所指向的对象。在实际代码中,指针是内存中的一个地址,地址是内存中该对象所在的位置。在用下面的代码行把第一个对象引用赋值给类型为myClass的第二个变量时,实际上是复制了这个地址。

      myClass objectB = objectA;

      这样两个变量就包含同一个对象的指针。

      而结构是值类型。其变量并不包含结构的指针,而是包含结构本身。在用下面的代码把第一个结构赋值给类型为myStruct的第二个变量时,实际上是把第一个结构的所有信息复制到另一个结构中。

      myStrujct structB = structA;

  • 相关阅读:
    细说Unity3D(一)——移动平台动态读取外部文件全解析
    React16新增生命周期与旧版本生命周期的区别
    refs的作用是什么,你在什么业务场景下使用过refs
    react setState 的用法
    webpack中,是借助loader完成的JSX代码的转化,还是babel?
    虚拟dom是什么?为什么虚拟dom会提升代码性能?
    react 性能优化的最佳实践?
    你会把数据统一放在 redux 中管理,还是共享数据放在 redux 中管理?
    redux 中间件的原理是什么?
    谈谈你对This对象的理解?
  • 原文地址:https://www.cnblogs.com/DannyShi/p/4468956.html
Copyright © 2011-2022 走看看