IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity3D数字孪生开发笔记——C#篇 -> 正文阅读

[游戏开发]Unity3D数字孪生开发笔记——C#篇

一、继承

  • 继承类派生了基类的 public 和 protected 特性和行为,并且能够任意添加和修改子的的特性和行为
  • 通过在派生类(子类)名称后加冒号(:),冒号后为基类(父类)名称来实现继承
  • 派生类能够调用基类的构造器(构造函数),调用形式是在派生类参数列表后添加一个冒号并通过带有关键字 base 来调用基类构造器
  • 语法:
    访问级别 ?? ~~ ?? class ?? ~~ ?? 派生类名:基类名
    {
    ????? ~~~~~ ????? 类成员…
    }
 class People
 {
     /// <summary>
     /// 姓名
     /// </summary>
     public string Name { get; set; }
     private int top;

	 public People(int top)
	{
		this.top=top;
	}

     //仅仅本"家族"使用
     protected int a;
 }

 class Teacher:People
 {
     
     /// <summary>
     /// 工资
     /// </summary>
     public int Salary { get; set; }
     private int left;//新的成员
     public Teacher(int top,int left):base(top)//调用基类构造器
     {
     	this.left = left;
     }

 }

 static void Main(string[] args)
 {
     //继承    
     //父类  只能使用  父类成员
     People person1 = new People();

     //子类  除了可以使用子类成员  还可以使用  父类成员
     Student stu01 = new Student();
     stu01.Name =""; 

     //父类型的引用  指向  子类的对象
     //只能使用父类成员
     People person2 = new Student();
     person2.Name = "";
     //如果需要访问该子类成员,需要强制类型转换
     Student stu02 = (Student)person2;
     //异常
     //Teacher tea01 = (Teacher)person2;
     //如果转换失败,不会抛出异常
     Teacher tea01 = person2 as Teacher;
     if(tea01 !=null)
         tea01.Salary = 100;
 }

二、结构

1、什么是结构

  • 定义:用于封装小型相关变量的值类型。与类语法相似,都可以包含数据成员和方法成员。但结构属于值类型,类属于引用类型
  • 适用性:
    表示点、颜色等轻量级对象,如创建存储1000个点的数组,如果使用类,将为每个对象分配更多内存,使用结构可以节约资源

2、定义结构体

1>定义结构体

  • 使用struct关键字定义
  • 除非字段被声明为 const 或 static ,否则无法初始化
  • 结构不能被继承,但可以实现接口
  private static int a = 1;
  private const int b = 1;
  private int rIndex = 0;//报错:结构中不能有实例字段初始化设定项

2>构造函数

  • 结构总会包含无参数构造函数
  • 构造函数中必须初始化所有字段
private int rIndex;

public int RIndex
{
    get
    {
        return this.rIndex;
    }
    set
    { 
        this.rIndex = value; 
    }
}

public int CIndex { get; set; }

//因为结构体自带无参数构造函数,所以不能包含无参数构造函数
public Direction()//报错:结构不能包含显示的无参数构造函数
{
}

public Direction (int rIndex,int cIndex):this()//没有:this()好像也没报错,可能是高版本的原因
{//构造函数中,必须先为所有字段赋值
    //:this()  有参数构造函数 先调用无参数构造函数,为自动属性的字段赋值
    this.rIndex = rIndex;
    this.CIndex = cIndex;
}
  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:23:28  更:2021-08-19 12:24:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 4:18:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码