- 博客(16)
- 收藏
- 关注
转载 [From 20.8] 错误处理的涉及规范和最佳实践
1.善用finally块: 特点:无论线程抛出什么类型的异常,finally块中的代码都会执行。 常见用法: a.清理那些已经成功启动的操作。 b.利用finally块显示释放对象以避免资源泄露。 ps:例如,只要使用了lock,using和foreach语句,C#编译器就会自动生成try/finally块。另外,重写类的析构器(Finalize方法)时,C#编译器也会自...
2019-03-12 16:04:00
153
转载 [From 18]定制特性(Attribute)
一.定制特性介绍 定制特性:利用定制特性,可宣告式地为自己的代码构造添加注解来实现特殊功能。定制特性允许为几乎每一个元数据记录项定义和引用信息。这种可扩展的元数据信息能在运行时查询,从而动态改变代码的执行方式。 作用范围:C#只允许将特性应用于定义一下任何目标元素的源代码:程序集,模块,类型(类,结构,枚举,委托,接口),字段,方法(含构造方法),方法参数,方法返回值,属性,事...
2019-03-08 17:44:00
147
转载 [From 14] String,一些对String知识得查漏补缺
一.逐字字符串(verbatim string) C#提供了一种特殊的字符串声明方式。采取这种方式,引号之间的所有字符都被视为字符串的和一部分。这种特殊声明称为”逐字字符串“,通常用于指定文件或目录的路径,或者与正则表达式配合使用。 例:string str = @"C:\Hello My World" String对象最重要的一点就是不可变(immutable). 二.字...
2019-01-28 15:30:00
234
转载 [From 13]接口
一.接口的继承(13.4) 派生类不能重写sealed的接口方法。但派生类可重新继承同一个接口,并为接口方法提供自己的实现。在对象上调用接口时,调用的是该方法在该对象的类型中的实现。下例对此进行了演示: 二.泛型接口(13.6~13.7) 1.泛型接口的好处(13.6): a.泛型接口提供了出色的编译时类型安全性。 b.处...
2019-01-03 12:02:00
166
转载 [From 10.1~10.5] 对象和集合初始化器(C#语法糖系列)
经常要构造一个对象并设置对象的一些公众属性(或字段)。 1.为了简化这个常见的编程模式,C#语言支持一种特殊的对象初始化语法。下面是一个例子: Employee e = new Employee(){ Name = "Jeff",Age = 45}; 2.如果属性的类型实现了IEnumerable或IEnumerable<T>接口,属性就被认为是集合,而集合的初始化是一...
2018-12-28 14:30:00
127
转载 [From 9.3]out和ref关键字
1.out关键字: a.不指望调用者在调用方法前就初始化好了对象 b.被调用的方法不能读取参数的值 c.要在方法返回前向这个值写入。 2.ref关键字: a.必须在调用方法前初始化参数的值 b.被调用方法可以读取值以及/或者向值写入。 3.CLR不区分out和ref,但C#编译器是将这两个关键字区别对待的。 转载于:https://www.cnblogs.com/TheC...
2018-12-28 14:29:00
121
转载 [From 8.5]转换操作符方法
转换操作符是将对象从一种类型转换成另一种类型的方法。 CLR规范要求转换操作符重载方法必须是public和static的方法。 例: 在C#中,implicit关键字告诉编译器为了生成代码来调用方法,不需要在源代码中显式转型。 相反,explicit关键字告诉编译器只有在发现了显式转型时,才调用方法。 在implicit或explicit关键字之后,要指定operat...
2018-12-28 14:28:00
103
转载 [From 8.7]分部方法
规则和原则: 1.只能在分布类或结构中声明 2.分布方法的返回类型使用时void,不允许out参数,允许有ref参数,可以是泛型方法,可以是实例或者静态方法,而且可以标记为unsafe。 3.分布方法的声明和实现必须具有完全一致的签名。 4.如果没有对应实现的部分,则不能创建委托来引用这个分部方法。 5.分部方法总是被是为private方法,但是C#编译器禁止在分布方法声明之前...
2018-12-28 14:28:00
143
转载 [From 8.2]值类型的构造器
1.必须显示调用构造器(就算有无参的构造器也不会执行),否则字段自动分配为0或者null 2.C#编译器不允许值类型定义无参构造器(CRL是允许的) 3.由于C#不允许为值类型定义无参构造器,则在字段声明是赋值也是不允许的。以下代码会报错 4.若定义了构造器,则所有字段都必须被初始化。 5.值类型虽然可以定义静态构造器(类型构造器),但是永远都不会被执行到。 转载于:...
2018-12-28 14:26:00
134
转载 [From 7.1~7.2] 常量和字段
/----------------------------7.1常量------------------------------------------/ 常量是值从不变化的符号。定义常量符号时,它的值必须能在编译时确定。确定后,编译器将常量值保存到程序元数据中。这意味着只能定义编译器识别的基元类型的常量。在C#中,以下基元类型,可用于定义常量:Boolean,Char,Byte,SB...
2018-12-28 14:25:00
133
转载 [From 4.2]as,is,和强制转换
例子1: if(o is Employee) Employee e = (Employee)o; 例子2: Employee e = o as Employee; 例子3 Employee e =(Employee)o; 例子1和例子3相比:例子1永远不会报错,例子3一旦无法转换便会报错 例子2和例子1,例子3相比:比例子1效率更快,比例子3更快。 转载...
2018-12-28 14:21:00
137
转载 [From 2.7]简单应用程序部署(程序集打包)
简单应用程序部署(程序集打包) windows Store打包 打包成.appx 非windows store应用打包 1.直接复制 2.使用.cab 3.打包成一个MSI(可做到按需安装----首次尝试加载一个程序集时才安装它) 转载于:https://www.cnblogs.com/TheChenLin/p/10190302.html...
2018-12-28 14:17:00
116
转载 [From 2.4]C#编译器和程序集链接器(以及一些它们的命令开关)
C#编译器:(用csc命令来使用C#编译器) 程序集链接器(Assembly Linker):(用al命令来使用C#编译器) 除了使用C#编译器,还可以使用”程序集链接器“使用程序AL.exe来创建程序。 1.如果程序集要包含由不同编译器生成的模块(而且这些编译器不支持与C#编译器的/addmodule)。 2.可用AL.exe生成只含资源的程序集,也就是所谓的附属程序集(s...
2018-12-28 14:16:00
337
转载 [From 1.1~1.2]CLR的执行模型
程序集(assembly): 程序集是抽象概念 程序集是一个或多个模块/资源文件的逻辑性分组。其次,程序集是重用,安全性以及版本控制的最小单元。在CLR的世界中,程序集相当于“组件”。 公式表达:程序集 = 清单(manifest) + 托管模块(PE文件) + 资源文件(.jpeg,gif,html,数据文件等) 托管模块: 托管模块是标准的32位Micro...
2018-12-28 13:58:00
142
转载 项目开发日志:Build AssetBundle——SpriteAtlas(已解惑)
项目信息: 平台-Android Unity编辑器版本-2018.2.5f1 状况1:真机状况下引用到图集下的sprite的UI显示出错。(图集被打成AB包且勾选了Include in Build). 在我们的测试下发现了以下两个解决方案:(当然我觉得第二个最好) 1.在加载相应UI前,将sprite所属图集(spriteAtlas)提前加载...
2018-10-09 22:59:00
2256
转载 项目开发日志:Build AssetBundle(一)——带lightingMap的预制体(真机显示问题)...
项目信息: 平台-Android Unity编辑器版本-2018.2.5f1 状况1:真机上光照贴图显示为黑色 解决方法:将GraphicSetting->Shader Stripping下的Lightmap Modes的Automatic改成Custom。 原因: GraphicSetting下的Shader Stripping其实...
2018-09-26 00:47:00
240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅