范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Unity3DC学习总结记录一

  文末有彩蛋~
  最近学习Unity3D,把学习过程中遇到的知识点记录下来。
  C# 静态,安全语言
  C++ 静态,不安全语言
  C#语言是类型安全的,其本质是有关类型操作的一种规范,即不能将一种类型当作另一种类型,除非它们真的存在转换关系。
  C/C++语言允许做一些非常规的事情,所以与 C#相比其功能更加强大,不过同时在使用不恰当时也带来了很多隐患。
  例如,C/C++有可能会通过一些不合理的途径,将一种类型的值当作另一种完全不同类型的值。这种不合理的途径是由于 C/C++中有的代码会以错误的方式检查值中的原始字节并解释它们。 #include <stdio.h> int main(int argc, char** argv) {     char *word = argv[1];     int *word_int = (int *)word;     printf ("%d", *word_int); }
  通过终端编译并运行上述代码,并将hello作为参数传入,
  输出的结果是1819043176。
  这是由于编译器将int当作32位的值,而char则是8位的值,同时文本使用UTF-8或者ASCII来表示。在本例中,C代码将char指针当作了一个int指针,因此只取其前4个字节(32位),并且将它作为一个数字处理。
  C#要求其所有类型全部从System.Object类派生。 无论是开发者自己定义的类型,还是C#所提供的类型。因此,下面的两种定义类型的方式,其含义是完全相同的,代码如下。 //隐式派生自System.Object class Person{ // … } //显式派生自System.Object class Person : System.Object{ // … }
  System.Object   定义了4个公共方法和2个受保护的方法(包括但不限于):Equals:若两个对象具有相同的值,则返回true,否则返回false。 GetHashCode:返回对象的值的哈希码。 ToString:默认返回类型的完整名称,即 this.GetType().FullName。 但是此方法经常被重写,最典型的例子就是int型等重写该方法以返回其值的字符串形式。 GetType:返回一个从 Type类派生的类型实例,以指出调用 GetType 方法的对象是什么类型。 常用于为反射提供与对象类型有关的元数据信息。 MemberwiseClone。 Finalize:虚方法,在对象被标志为应该被作为垃圾回收之后,但在内存真正被回收之前,会调用该方法。 因此,如果需要在回收内存前执行清理工作的类型应该重写该方法。
  自动推导变量:
  C++: auto
  C#: var
  值类型和引用类型
  C#中大部分类型都是引用类型,但是在实际开发中,可以发现程序员使用最多的还是值类型。 引用类型总是从托管堆分配,C#要求所有的对象都使用new操作符创建。
  C#中操作符new: 计算所需内存空间,new操作符会计算目标类型和包括System.Object类在内的,其所有基类中定义的所有实例字段所需要的字节数。
  除此之外,为了方便Mono运行时管理对象,还有一些额外的信息需要托管堆为其分配空间,如类型对象指针和同步索引块。 完成计算对象所需的空间后,就要为对象在托管堆上分配所需要的内存空间了。分配的所有字节都设为0。 内存空间分配完,接下来需要初始化(在(1)中所提过的)对象的"类型对象指针"以及"同步块索引"。 当前3个准备步骤全部完成后,最后就要调用类型的实例构造器了。
  构造器中自动调用当前类型的基类构造器。每个类型的构造器都负责初始化该类型定义的实例字段。最终一定会调用 System.Object 的构造器,而该构造器仅仅是返回,而没有什么逻辑操作。 最后会返回指向新建对象的一个引用。也就是说新建的变量是一个指向某类型对象的引用,而非对象本身。
  由于并没有一个和new操作符相对应的delete操作符存在,因而对象的回收工作主要由垃圾回收机制,也就是GC来处理。
  那么在 C#语言中,到底哪些类型可以归为是引用类型,又有哪些类型应该被归为值类型呢?
  根据ECMA的 C#语言规范(ECMA-334规范)或者微软官方的C#语言规范,任何被称为"类"的类型都是引用类型。
  并且通常使用以下3个关键字来声明一个自己定义的引用类型。 Class Interface Delegate
  当然,在C#中也有一些内建的引用类型。 Dynamic Object string
  值类型包括: 数字型结构:常见的有System.Int32结构、System.Float结构、System.Decimal结构等。 布尔型结构:常见的无非是System.Boolean结构。 用户自定义的结构。
  特别注意的是C#的结构体  struct   是属于值类型,而C++中的结构体可以认为就是类。
  值类型实例有两种表示方式,分别是未装箱和已装箱。而装箱机制是指将值类型转换成引用类型。 正是由于值类型不在托管堆中分配,不被垃圾回收,同时也无须通过指针来引用,因而值类型与引用类型存在很多区别。但是有很多情况需要获取和操作对值类型实例的引用。因而装箱机制为了应对这种情况,便应运而生。
  值类型派生自System.ValueType(即struct隐含的基类型是System.ValueType),而System.ValueType同样从System.Object派生而来,因此System.ValueType提供了和System.Object相同的方法,不过值得注意的是System.ValueType重写了Equals方法和GetHashCode方法。
  如果符合以下条件,作为开发者可以选择使用值类型而不是引用类型: 类型的实例较小时。 类型的实例较大时,不会作为方法的实参进行传递,或作为方法的返回值返回。 由于值类型不能作为基类型来派生新的值类型或引用类型,因此目标类型中不能引入新的虚方法,以及所有的方法都不能是抽象的,最后所有方法都隐式密封。
  装箱和拆箱
  有时我们需要使用一个引用,而不是一个值类型的值,就需要装箱,装箱的步骤如下:
  (1)在托管堆中分配内存。 需要注意的是,由于是将值类型进行引用类型化,因而分配的内存空间除了值类型各个字段所需的内存之外,还要加上托管堆所有对象都有的两个额外成员(类型对象指针和同步索引块)所需的内存。
  (2)将值类型的字段复制到新分配的堆内存中。
  (3)返回对象地址,即对象的引用。 值类型成了引用类型。
  由引用类型转为指类型,则经过获取引用并复制:
  (1)获取已经装箱的对象中各个字段的地址,这个过程便是所说的拆箱。
  (2)将已经装箱的对象中各个字段的值从托管堆上复制到线程栈的新的值类型实例中。
  一个在使用C#语言进行开发的过程中经常遇到的一个误区,就是将拆箱当作了装箱的逆过程。 其实并不是这样的,相比于装箱,拆箱的代价要小得多。 拆箱其实就是获取引用的过程,获取的这个引用指向了一个分配在托管堆上的对象中的值。需要注意的是,拆箱并不涉及复制的过程,所以将值从托管堆上的对象中复制到值类型实例中,是拆箱之后紧跟的一步复制过程,而非拆箱本身。
  在拆箱时,一定要注意只能转型为最初未装箱的值类型。而拆箱需要显式的指定要转型的目标类型这一点,也与装箱不同。许多编译器都是隐式生成代码来装箱对象的,因此作为开发者有时会因为不注意而忽略这一点,所以如果是一个关心程序性能的开发者,就一定要清楚自己的代码究竟是否会造成装箱操作。
  以上就是最近学习Unity3D的学习记录啦!
  最后附上一张Unity3D, Mono, C#的关系。

RocketMQ如何用死信队列解决消费者异常如果消费者系统的数据库宕机,会怎么样?假设我们的MQ使用都没有问题,但是如果消费者系统的数据库挂了呢?因为我们一直都是假设了一个场景,就是生产者在处理完自己的逻辑之后会推消息到MQ选购家用净水器,这4个方法很重要由于净水器的功能特殊,能净化水质,所以购买家用净水器的人也越来越多,市场上的家用净水器品牌和产品层出不穷,这着实让人无法选择,接下来我们就列出四个方法,让消费者更好的购买,轻松净水张凡做简单纯粹的凡人张凡,民进会员,复旦大学化学系教授博导。国家杰出青年基金获得者,中组部青年拔尖人才(万人计划)。2012年协调成立了复旦陶氏化学联合研究中心,任研究中心副主任。2020年成立了上海谷歌员工中位数年薪近30万美元居美国科技巨头首位来源新浪科技北京时间4月13日下午消息,据报道,由于美国科技股动荡,导致越来越依靠股权奖励的美国科技巨头的员工薪酬受到影响,但他们的收入依然高于绝大多数行业。报道显示,谷歌员工年薪新的一年,新的起航,新的宋plus新能源宋plus新能源这款车外观设计是非常满意,家族式前脸设计,看上去辨识度非常高,LED前大灯看起来和别的车型有明显的区别,特别的酷。车身腰线非常的流畅,从车头贯穿到车尾。内饰设计日蚀FANUC机器人故障诊断设备名和代码篇设备名设备代码(十进制)设备代码(十六进制)说明ACAL112hr0x70AccuCalII错误代码APSH38hr0x26应用外壳程序ARC53hr0x35弧焊应用ASBN22h冰箱洗衣机跟电视哪个牌子比较不错?我家海尔的冰箱,09年买的,用到现在,除了漏水孔经常堵塞,需要定期拿个铁丝捅一下,制冷还是可以的。电视机是10年买的海信液晶电视,用到现在没出现过问题。洗衣机是12年买的海尔全自动大数据究竟多大才算是,该如何学习大数据?大数据本身是基于数据价值化而构建出来的新概念,虽然概念比较新,但是数据却一直都在,所以大数据的核心并不在大上,而是基于大数据所构建出的一个新的价值空间。在理解大数据概念的时候,通常mysql时间转换和截取1时间戳转时间fromunixtime(value,format)例fromunixtime(1627956774,ymd)2时间转时间戳unixtimestamp(date)例s旧金山犯罪猖獗Kraken被迫关闭总部无法保证员工安全美国主要加密货币交易所之一Kraken近日宣布,已关闭了其位于旧金山的全球总部,因为这座城市对员工来说太危险了。Kraken首席执行官杰西鲍威尔(JessePowell)最近在推特爱立信诺基亚相继宣布决定,主动让出关键市场,华为成了唯一本文原创,请勿抄袭和搬运,违者必究在全球通信市场,华为爱立信诺基亚这三大巨头形成主导之势,一半以上的通信设备市场份额都在他们手里。尤其是华为,一家公司的市场份额就顶的上爱立信和诺基
拿破仑的头发中的DNA显示其父系Y染色体为E1b1b1c12011年的JournalofMolecularBiologyResearch中HaplogroupoftheYChromosomeofNapolontheFirst的文章,详细介微信又有新功能聊天图片搜索发送4K无损视频近日,微信通过热更新为我们带来了新功能,支持聊天图片搜索发送4K无损视频,让我们一起来看看吧!聊天图片搜索微信需升级到最新版,打开微信,点右下角我设置通用照片视频文件和通话开启聊天火山引擎入局视频云!联合腾讯阿里云推行业标准,携Pico首秀VR成果智东西(公众号zhidxcom)作者李水青编辑心缘智东西2月26日报道,昨日,字节跳动旗下的火山引擎首次公开其视频云服务产品矩阵,覆盖了视频直播点播实时音视频云游戏和云渲染等全链路你还在用保鲜袋包食物放冰箱吗?试试这款米欧冰箱除味器吧因为我个人最近也需要,家里有一个冰箱,不清理时间久了就会出现异味,很难闻。平时也没有时间定期的清理,而且平时买的水果什么的都会放到冰箱里面,包括剩饭什么的。前段时间吃了从冰箱里面拿东数西算最强逻辑液冷数据中心,前排佳力图依米康,关注后排最喜欢液冷数据中心这个逻辑,仔细研究过就会发现液冷数据中心逻辑最正。当前全国一体化大数据中心体系完成总体布局设计,东数西算工程正式启动。此前,我国首批数据中心液冷系列行业标准正式发Adobe2022全新2月稳定版全家桶来了,更稳定,更多黑科技就在刚刚,Adobe2022的2月全新稳定版终于来了!支持WINMAC系统(支持M1系统)全新封装版本,直接安装即激活,目前已帮大家整理出来,快来看看这次Adobe又给我们来了哪些shell生成指定范围内的随机数在shell中有一个环境变量RANDOM,它的范围是032767如果我们想要产生025范围内的数,如何做呢?如下exprRANDOM26用这个环境变量对26取模,就可以得到最小是0英媒造车新势力展现中国创新实力,但它们的大脑来自美国文观察者网吕栋经过两年开发,集度汽车首款Robocar概念车将于今年4月亮相北京车展。这家由百度和吉利合资的企业,加入以蔚来小鹏和华人运通为代表的自动驾驶行业,成为美国公司特斯拉的看看你这些年都买过什么手机,什么牌子什么型号,多少钱什么时间?先来说说我吧,十几年来用过20个吧,印象深的有那么几个,第一部是二手的摩托罗拉翻盖的什么型号忘了,黑白屏挺小的,没用多久就坏了,后来买的科健的k538好像是1500仿三星的,也是翻韩国电子产品意欲进入中国首先,我需要知道的是你的产品好在哪里?至少到目前,我没用过三星手机,真的不了解他的优势。另外,就是价格。是不是偏贵?我觉得,还是产品质量方面。如果你的东西,质量非常好,有很高的技术企业微信4。0版本推出助力更多企业数字化转型来源经济日报我们希望去探索一种全新的B2B连接,让企业与企业之间的协同就像在一个公司里那么方便。比如,可以快速找到上下游伙伴,可以一键发起聊天或者发起会议,可以跟伙伴共享一份文档或