![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
文章平均质量分 72
_iShow_
这个作者很懒,什么都没留下…
展开
-
【C#/笔记】C#中的不安全代码(指针)
不安全代码介绍 C#中可以像C++一样使用指针进行内存操作,包含指针操作的代码为不安全代码。 由于直接操作内存,效率一般更高。 可指定类型任何整形类型任何浮点型类型字符布尔型小数任何枚举类型任何指针类型 任何仅包含非托管类型字段的用户定义的结构类型注意 指针类型不从对象继承,并且指针类型与 object 之间不存在转换。 此外,装箱和取消装箱不支持指针。 但是,...原创 2018-05-28 10:33:12 · 815 阅读 · 0 评论 -
【C#/笔记】泛型Generics
泛型Generics泛型是什么 所谓泛型,通用类型的意思,英文单词是generics,可以理解为,以类型为参数,在原有类型或方法上进一步的抽象。 泛型的作用避免了装箱拆箱造成的资源消耗是类型安全的提高代码复用泛型的主要思想就是将算法与数据结构完全分离开来,使得一次定义的算法能够作用于多种数据结构,从而实现高度可重用的开发。 通过泛型可以定义类型安全的数据结构,而没有必要使...原创 2018-05-01 10:54:43 · 283 阅读 · 0 评论 -
【Unity/笔记】垃圾回收GC
垃圾回收GC(Garbage Collection)托管资源的分配 CLR在运行时管理着一段内存地址空间(虚拟地址空间,在运行中会映射到物理内存地址中),分为“托管堆”和“栈”两部分。 栈一般用于存储值类型数据,它会在方法执行结束后自动销毁其中引用的值类型变量,当数据被存储在堆栈上的时候,只需要简单地在其后进行扩展。当数据失效的时候,只需要将其从堆栈上移除。 托管堆用于引用类型...原创 2018-04-07 09:40:31 · 1510 阅读 · 0 评论 -
【C#/笔记】装箱和拆箱
装箱与拆箱作用 一般说:将值类型转为引用类型为装箱,而将装箱的引用类型还原为值类型则是拆箱。 例如: ArrayList可以同时容纳不同类型的数据,其本质就是将所有类型都作为object类型来对待,那么添加和移除值类型数据时,不可避免会进行装箱和拆箱的操作。 public virtual int Add(object value); public virtual voi...原创 2018-04-06 21:07:32 · 192 阅读 · 0 评论 -
【C#/笔记】数据类型
数据类型 C#中所有的类型最终都派生自基类System.Object值类型 值类型最终派生自基类System.ValueType。 值类型主要包括结构和枚举两类。 常用结构类型:Int32(int),Single(float),Double(double),Boolean(bool)及自定义结构类型等。 枚举类型如:FontStyle.引用类型 所有称为类的类型都是引...原创 2018-04-06 17:44:46 · 551 阅读 · 0 评论 -
【C#/笔记】参数修饰符Ref Out Params
ref out params参数修饰符params 使用params修饰形参,可以允许调用函数传参时:1.无参 2.逗号分隔的多个参数 3.值为数组的变量 ref与out基本用法 使用时在实参和形参前添加ref或者out修饰符,用于对实参的值进行修改。ref与out的区别 使用ref前,变量必须先初始化必须对out修饰的形参进行赋值ref允许不对变量进行赋值更改而out不行 ...原创 2018-04-05 15:46:02 · 308 阅读 · 0 评论 -
【C#/笔记】序列化与反序列化
序列化与反序列化序列化与反序列化 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程,其逆过程一般称为反序列化。 格式化器 使用命名空间System.Runtime.Serialization.Formatters.Binary下的 BinaryFormatter binformatter = new BinaryFormatter();得到一个格...原创 2018-04-17 15:37:13 · 617 阅读 · 0 评论 -
【C#/笔记】关于Stream与byte[]
Stream定义 广义来讲,流应该是一种物质的连续动态的形式,例如水流,车流等。 那么在C#中流应该既是连续数据的载体,而且是二进制形态的数据。Stream C#中的Stream是个抽象类,属性包含了可读可写可查找及延时等特性还有有一个长度Length和Position 这个Position属性很重要,相当于”游标”的作用,用来获取或设置当前流中的(游标)位置. Stream...原创 2018-04-14 17:49:41 · 3162 阅读 · 0 评论 -
【C#/笔记】反射Reflection
反射Reflection程序集(Assemblies)与命名空间(namespaces) 命名空间 提供了一个逻辑组织系统,是唯一识别的一套名字,用来避免在命名的冲突。程序集 是.NET程序的部署单元,用于物理包装和配置,像一个类型的容器,可以包含类别(元数据信息)、用于实现这些类型的可执行代码(IL)、资源和对于其他程序集合的链接。 有两种主要种类:应用程序(.exe)和库...原创 2018-04-09 10:18:33 · 202 阅读 · 0 评论 -
【Unity/笔记】特性Attribute
特性Attribute元数据 元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是描述其它数据的数据 元数据是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述。将您的代码编译为 PE 文件时,便会将元数据插入到该文件的一部分中,而将代码转换为 Microsoft 中间语言 (MSIL) 并将其插入到该文件的另...原创 2018-04-08 17:07:25 · 218 阅读 · 0 评论 -
【C#/笔记】委托(Delegate)和事件(Event)
委托(Delegate)和事件(Event)观察者模式 定义了对象一对多依赖,当一个对象改变时,所有依赖者都会收到通知并自我更新。 需知 方法组转换 支持从(多个)方法到兼容的委托类型的隐式转换。逆变性 方法获取的参数类型可以是(委托的)参数的类型的基类。协变性 方法返回类型可以是从(委托的)返回类型派生的派生类。 回调 将方法(或委托实例)作为(能隐式...原创 2018-04-08 14:58:46 · 333 阅读 · 0 评论 -
??运算符
??运算符?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值。如果此运算符的左操作数不为 null,则此运算符将返回左操作数(左边表达式);否则当左操作数为 null,返回右操作数(右边表达式)。 /// <summary> /// Gets a single instance /// </su...原创 2018-12-27 16:51:33 · 436 阅读 · 0 评论