C#
文章平均质量分 98
Snail -Bernoulli
日拱一卒, 追求真理
展开
-
C# 反射机制
一、什么是反射反射是说在计算机程序在运行时(run time)可以访问、检测和修改它本身状态或行为的一种能力。通俗的讲,反射就是程序在运行时能够“观察”并且修改自己的行为。二、反射跟内省(type introspection)的关系1、内省 指程序在运行时对自身信息(元数据)的检测。2、反射 在除了在运行时对程序自身信息进行检测之外,还要求程序能进行进一步的根据这些信息跟变程序的状态...原创 2018-07-16 13:42:23 · 163 阅读 · 1 评论 -
30秒了解I/O
文件:是存储在磁盘中带有指定名称和目录路径的数据集合。当打开文件进行读写时,会变成一个流。流:通过通信路径传递的字节序列。分为输入流和输出流。(这里的输入输出是相对于“我”而说的。就像新学面向对象理解面向对象中的“this”关键字一样。)流在读写方式上分为输入流和输出流, 在文件类型上分为字节流和字符流。输入流:用于从文件读取数据(写给我)。输出流:用于向文件中写入数据(从我读出去)。字节流:二进...原创 2018-07-14 19:01:42 · 160 阅读 · 1 评论 -
快速了解什么是委托
你的手打架时会握拳,鄙视别人会竖中指,吃西餐会用刀叉切牛排,吃中餐会用筷子。你的手将这一系列行为所对应的动作委托给你的大脑去调用。有天你要和别人打架了,大脑发出了“进入打架模式”,然后调用了手的握拳,肩膀的怂起,手臂的抬起。。。突然不打了,大脑又调用了手的舒展,肩膀的放松,手臂的放下。。。虽然你的手可以很自如地做很多动作,但都是大脑去调用手,手不需要无时无刻的判断现在吃吃饭还是打架...原创 2018-08-10 11:01:00 · 191 阅读 · 0 评论 -
通过IL分析C#中的委托、事件、Func、Action、Predicate之间的区别与联系【转载】
一直以来都是对于事件与委托比较混淆,而且不太会用。找了个时间,总结了一下,感觉清晰了很多。先说一下个人理解的结论吧: delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类。 delegate声明的变量与delegate声明的事件,并没有本质的区别,事件是在delegate声明变量的基础上包装而成的,类似于变量与属性的关系(在IL代码中可以看到...转载 2018-08-10 11:29:14 · 225 阅读 · 0 评论 -
你可能不知道的陷阱:C#委托和事件的困惑【转载】
一. 问题引入 通常,一个C语言学习者登堂入室的标志就是学会使用了指针,而成为高手的标志又是“玩转指针”。指针是如此奇妙,通过一个地址,可以指向一个数,结构体,对象,甚至函数。最后的一种函数,我们称之为“函数指针”(和“指针函数”可不一样!)就像如下的代码: int func(int x); /* 声明一个函数 */ int (*f) (int ...转载 2018-08-07 15:23:04 · 318 阅读 · 0 评论 -
如何用Unity3D优雅的制作一个小键盘(计算器什么的随便改)
一、开局先上个小键盘效果图(UI为NGUI所制作,这里不再赘述)二、代码部分(代码可扩展部分非常强)using System.Collections;using System.Collections.Generic;using UnityEngine;using System;public class SmallKeyboard : MonoBehaviour{ ...原创 2018-08-22 20:05:24 · 3042 阅读 · 5 评论 -
C#中的as关键字
你能进到这篇文章……首先你可能明白类似于double num=0;int m=(int) num; 或者你明白 int m=209;String str=m.toString();或者说你甚至见过char m='c';int m=Integer.parseInt(m);现在应该明白as了吧? 对, 你没有猜错,它就是一种类型强转的方式。例子如下:O...原创 2018-08-28 02:20:12 · 6056 阅读 · 0 评论 -
C#中readonly 与const的区别
const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等。在多数情况下可以混用。二者本质的区别在于,const的值是在编译期间确定的,因此只 能在声明时通过常量表达式指定其值。而static readonly是在运行时计算出其值的,所以还可以通过静态构造函数来赋值 readonly 关键字与 const 关键字不同。 1. const 字段只能在该字...转载 2018-08-31 11:51:30 · 896 阅读 · 0 评论 -
Unity与C#的序列化与反序列化【转载】
序列化操作在我们的开发中使用的十分普遍,本文记录了公司最近分享会上关于这部分的讲解,希望能帮助大家对序列化有更系统的了解。概念序列化又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制。其目的是以某种存储形式使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方。简单来说就是将对象保存到文件中。如Unity的场景文件和预制体默认就是以二进制的文件保存在工程目录下...转载 2018-08-31 12:03:33 · 1070 阅读 · 0 评论 -
C# 中的预处理器指令
一、什么是预处理 预处理:(说的不专业或者通俗一点)就是你要做某件事情之前,把做这件事情需要的材料准备好。二、 预处理指令器使用注意点 在C# 中所有的预处理指令都是以#开始,预处理指令必须出现在行首或在这一行它的前面只能有空格或TAB(制表键)等类似的空白符号,需要注意的是预处理指令不是语句,不能以分号结尾。三、预处器指令列表 ...转载 2018-07-14 18:22:35 · 250 阅读 · 0 评论 -
C#中的命名空间
一、 含义Namespace 一词源于C++ 中。命名空间的目的就时给一个项目分组或给个范围。相当于java中的package(包)。二、 作用相同的命名空间中不能有名字相同的类,就像相同的方法体内不能有相同的变量名,即使在同一个项目中进行项目整合时,即使有相同的类名,只要这两个或两个以上的类两两不在同一个命名空间中,那么他们还是互不影响的。三、 ...原创 2018-07-14 17:56:00 · 1630 阅读 · 1 评论 -
浅谈C#中的同步锁
阅读数:8014本文介绍C# lock关键字,C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。其中,...转载 2018-07-16 15:09:59 · 5815 阅读 · 0 评论 -
“@” 在C#中的用法
一 字符串中的用法1。地球人都知道 C# 中 字符串常量可以以 @ 开头声名,这样的优点是转义序列“不”被处理,按“原样”输出,即我们不需要对转义字符加上 \ (反斜扛),就可以轻松coding。如,string filePath = @"c:\Docs\Source\a.txt" // rather than "c:\\Docs\\Source\\a.txt"2。如要在一个用 @ 引起来的字符...转载 2018-07-11 13:32:30 · 1322 阅读 · 0 评论 -
Visual Studio Debug教程
与大多数IDE一样,Visual Studio有两个调试阶段:第一阶段是发现并解决问题: Build 过程中的项目和编译错误。第二个阶段是发现并解决Run过程中的动态错误。 Build SolutionBuild一个Solution先从配置开始。Solution的配置有两种基本类型:Debug和Release。Debug和Release的区别如下默认配置为De...原创 2018-07-17 19:26:02 · 16662 阅读 · 1 评论 -
C#中的强引用和弱引用
我们平常用的都是对象的强引用,如果有强引用存在,GC是不会回收对象的。我们能不能同时保持对对象的引用,而又可以让GC需要的时候回收这个对象呢?.NET中提供了WeakReference来实现。弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,同时希望GC必要时回收时,可以考虑使用弱引用。一:...转载 2018-07-17 21:55:40 · 2186 阅读 · 0 评论 -
类与类库的区别
1、 类:只能在本项目里掉用。2、 类库:能在所有的项目调用,相当于java中的jar包。并且在其他项目中调用的时候只能看到公有的属性跟公有的成员方法,方法的具体实现不现实。3、 如何生成类库:...原创 2018-07-06 10:58:21 · 4415 阅读 · 2 评论 -
C#封装
做应用是给用户提供一些便利。做游戏是给人类创建一个世界。通过访问修饰修饰符。修饰符定义了一个类成员的范围和可见性。修饰符有:1、 public:所有对象都可以访问。(全部可见)2、 private:对象本身在对象内部可以访问。(本类中可见)3、 protected:只有挨累对象及其子类对象可以访问(本类和子类可见)4、 internal:同一程序集的对象可以访问.(同一程序集可见)5、 ...转载 2018-07-12 21:50:23 · 174 阅读 · 0 评论 -
C#可空类型
C#特殊的数据类型(可空),nullable,可空类型表示其基础值类型正常范围内的值,再加上一个null值。比如Nullable<bool>变量可以被赋值为true或false或null。用处:在处理数据库和其他包含可能为负值的元素数据类型是,将null复制给数据类型或bool型的功能特别好用。比如:数据表中bool型的字段可以存储为true或者false 或者未定义。“??”null...转载 2018-07-14 14:54:41 · 556 阅读 · 0 评论 -
C#中的枚举、结构体与类
注意: namespace 定义命名空间的关键字 enum定义枚举的关键字 class 定义类的关键字 stuct 定义结构体的关键字一、枚举枚举是一组命名整型变量,枚举类型使用enum关键字声明,c# 中的枚举是值类型(枚举包含自己的值,并且不能直接继承或间接继承)。枚举列表中的每一...原创 2018-07-14 16:59:51 · 1592 阅读 · 1 评论 -
Unity中的四元数类详解【详解】
一、简介Quaternion又称四元数,由x,y,z和w这四个分量组成,是由爱尔兰数学家威廉·卢云·哈密顿在1843年发现的数学概念。四元数的乘法不符合交换律。从明确地角度而言,四元数是复数的不可交换延伸。如把四元数的集合考虑成多维实数空间的话,四元数就代表着一个四维空间,相对于复数为二维空间。四元数关于四元数的性质、与旋转的关系、球型线性插值的介绍,请阅读3D游戏与计算机图形学中...转载 2018-08-31 13:31:49 · 9930 阅读 · 0 评论