自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

自由理想的足迹

只要功夫深,铁杆磨成针

  • 博客(17)
  • 资源 (10)
  • 收藏
  • 关注

原创 A Tutorial: Learn How to Avoid The 10 Most Common C# Mistakes笔记

感觉比较重要的需要注意的陷阱总结了下:基础语言特性:1.C#是强数据类型的,注意引用和值类型区别。2.C#中提供的默认值和C++相反,C#中数据成员提供默认值,局部方法中不提供默认值。.net类库和内存管理:3.string类型比较不能用==符号,而应该用Equals方法。  Console.WriteLine(s == "straße");  Cons

2015-10-12 23:29:03 573

原创 C#异常处理

C#中异常处理一般不影响性能,所以应该返回必要的错误码或者打印Log以外,需要的地方必须加入异常处理。一、.net异常处理和预定义异常类.net内建异常类有:System.SystemException .net CRL抛出的严重异常,例如抛出StackOverflowException,ArgumentExceptionSystem.ApplicationExceptio

2015-10-11 17:23:02 2273

原创 C#自定义特性和反射

反射需要一整本书来讨论,这里只介绍了Type类和Assembly类,他们是访问反射所提供的拓展功能的主要入口点。这里介绍了自定义特性,它比其它方面更常用,以及如何在运行期间检索自定义特性信息。一、自定义特性内置的特性可以根据特性来影响编译。自定义特性可以在运行期间获取程序信息,可以影响执行程序的方式。例如自定义特性可以用于支持对自定义许可类进行声明性的代码访问 安全检查

2015-10-11 16:18:49 3168

原创 C#内存管理-栈堆/回收器托管/非托管资源释放/指针的应用

1.栈内存-从上往下增长,释放时从下部的末尾出栈.net 5中栈好像也是从下往上增长了,释放时从上部顶端出栈。栈类型数据,整体是从进程空间中的栈内存资源的最大地址处开始分配栈内存的,栈指针总是指向已用地址更小的内存地址上,下一个为空闲内存地址。当变量出了作用域时候,栈内存就会释放,栈指针上移到非空闲地址的小地址上,若再进来变量就会覆盖之前不用了的地址内存区域。     栈内存分配是对整

2015-10-11 12:03:30 2662

原创 dynamic基础类型/C#与动态脚本语言交互/dynamic自定义类型

ruby python js动态语言有他们自身的优点,因此C#中的var关键字和匿名方法开辟了C#的动态编程路径,.net 4中增加了dynamic类型。DLR(dynamic language runtime)是脚本运行库,是添加到CLR的一系列服务,它允许添加动态语言,如ruby python,并使C#具有这些动态语言相同的某些动态功能,silverlight也使用DLR。DLR位于Sys

2015-10-10 10:58:30 3358

原创 LINQ统一数据操作语句

一、基本原理1.数据源无关的数据统一操作,LINQ语句做了一个程序语句到各种数据源之间的抽象统一中间件。where开始,select或group结束. order 和group,select new等各种语句。2.用了拓展方法,在generic枚举类型来做,编译器会将LINQ语句解释为where上的枚举类型的事例对象上调用拓展方法,实现功能。因为拓展方法的拓展接口是IEnumerabl

2015-10-10 09:22:50 1364

原创 u3d坐标系详解

1.unity3d中的坐标系1)World Space(世界坐标):标准的D3D左手坐标系,旋转方向是左手法则包括法向量方向,背面剔除逆时针的。我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在transform.position可以获得该位置坐标。例如:MainCamera的坐标系是(0,0,-10);注意模型中的嵌套父子坐标系,连续的变换,和变换的累计(骨骼动画中的缩放旋转

2015-10-09 23:30:06 10423

原创 代码整洁之道读书笔记

谁都喜欢优雅和高效的代码,那么如何写出来。一、设计代码的理论原则:1)减少模块依赖,模块划分(插件化微内核化架构)。2)减少对象依赖,面向接口编程:尽量减少依赖关系,使之便于维护;3)高性能,开放关闭:性能调至最优,省得引诱别人做没规矩的优化,搞出一堆混乱来。4)迪米特法则,组合优于继承。5)单一原则:简单函数:整洁的代码只做好一件事。本身逻辑简

2015-10-06 13:05:03 698

原创 C#集合类(数据结构)

一、选择数据结构1)线性容器List数组/Stack/Dequeue按需求模型选择即可,LinkedList是双向链表增删修改快.需要有序数组SortList线性排序容器都可以;如果既需要查找快又需要频繁修改那么可以用List记录索引,用LinkedList存储。2)二叉树类型容器SortedDictionary可以提供二叉树类型插入删除查找都比较折中的键值对容器。Sort

2015-10-04 20:03:45 8926 3

转载 C#拓展方法

转载自:https://msdn.microsoft.com/zh-cn/library/vstudio/bb383977%28v=vs.100%29.aspx1.不用创建新的派生类型和重写编译原有类或接口,而为类或接口拓展方法扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进

2015-10-04 16:26:29 734

原创 C#字符串和正则表达式

0.string类简单字符串操作用string类,对应IL中的System.String类,有很多足够常用的字符串操作,但是频繁操作效率非常低下,所以其它方式的字符串操作同样必不可缺。每次生成一个新的实例都要申请新的堆资源,和回收旧的资源。1.StringBuilder频繁更改:频繁创建字符串和多次创建较长的字符串,那么需要用System.TextStringBuilder类提高性能。

2015-10-03 18:34:43 2681

原创 C#委托/Lambda表达式/事件

1.委托基本定义委托用delegate定义,指定返回值和参数列表的函数类型,不包括数据,这些方法是不区分静态或者非静态的,可以引用一个委托实例也可以引用多个(广播)。可以任意修饰符,可以防止在类内部,也可以在类外部,不可以在函数内部定义。给委托对象赋值时候需要对委托构造函数传递一个参数(具体方法的引用),或者将定义的方法直接赋值给委托对象,这些方法不用传递参数先真正调用时候委托对象

2015-10-03 11:41:34 3504

原创 C#编程思想及C#类型/运算符和强制类型转换

1.C#编程的几大方面1)baseType过程式的编程缺陷: C#要注意内存数据值类型/引用类型,类型转换错误。2)CRL OOP面向对象泛型接口:泛型设计和接口设计特性理解CRL补充的代码自己要添加的代码,IL中间语言分析原理。3)元编程,函数编程,数据编程:元编程和函数编程的风格,正则表达式,lambda表达式,LinQ编程。4).Net Framework事件框架异步编程

2015-10-02 18:54:03 1602

原创 C#数组特性

1.C#数组基本特性1)数组是存储的引用,引用的元素存放在托管堆,如果元素是值类型任意初始化方式都可以,如果元素是引用类型那么初始化时侯元素要new出来。2)多维逗号隔开就可以了,长度用Length。数组类CRL编译后使得继承自Array类,也就是继承自IEnumerable,IStructuralComparable等,IEnumerable有 IEnumerator GetEnumer

2015-10-02 11:44:53 1034

原创 foreach/yield语句自定义IEnumerable和IEnumerator类型

1.foreach语句   C#中的foreach语句不会翻译为IL中的foreach语句,而是会翻译为IEnumerable中的接口的属性和函数,将类型替换为相应的泛型,IEnumerator while MoveNext Current语句,会用while一次遍历迭代器的所有元素。含有数组成员的类会继承Array类,Array类会继承IEnumerable类,IEnumerable类包

2015-10-02 09:33:04 735

原创 C#yield return和yield break函数执行逻辑理解

1.使用要求: 1)你不能在具有以下特点的方法中包含 yield return 或 yield break 语句:    匿名方法。 有关详细信息,请参阅匿名方法(C# 编程指南)。    包含不安全的块的方法。 有关详细信息,请参阅unsafe(C# 参考)。2)返回类型要求:迭代器的声明必须满足以下要求:    返回类型必须为 IEnumerable、IEnumerab

2015-10-01 13:07:22 17473

转载 C#委托及各种写法

C# 委托及各种写法委托是嘛?委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法)。通俗的说,委托是一个可以引用方法的对象,当创建一个委托,也就创建一个引用方法的对象,进而就可以调用那个方法,即委托可以调用它所指的方法。如何使用委托?1、定义委托类型[访问修饰符]delegate 返回类型 委托名(形参);2、声明委托对象委托名 委托实例

2015-10-01 09:41:03 1620

VisualAssist.X_10.9.2333

Visual Assist X For Visual Studio, 番茄助手支持VS2019 VS2017 VS2015 VS2012 VS2010. 亲测可用,欢迎评论

2020-05-31

Python学习文档

Python学习文档

2018-10-04

Lua代码优化总结

编写高性能的Lua代码总结

2018-10-04

C++ 11 学习总结文档

c++特性11 学习 总结文档,对特性查询很有帮助,欢迎下载

2018-10-04

Unreal Engine 4 Game Development in 24 Hours

Unreal Engine 4 Game Development in 24 Hours英文版本,欢迎下载。

2018-10-03

CC++黑色星期五计算方法

C C++黑色星期五代码,逻辑严谨,代码清晰的实现,VC Linux下代码可以直接运行;欢迎下载切磋。

2013-03-12

Linux帮助文档用户指南手册

Linux帮助文档 用户指南 linux/unix用户手册,新手管理员指南;必备文档,chm格式。

2011-04-11

C/C++语言帮助文档

C/C++ 帮助文档 参考文档 ,包含C函数库,C++标准模板库,chm格式易于查询,C/C++程序员手册

2011-04-11

MFC最详细的帮助文档

MFC详细的帮助文档,内涵win32 API 函数,MFC详细类库;VC开发人员的详细文档。

2011-03-08

linux帮助文档linux.chm

linux帮助文档;全面了解最流行的linux版本特征;详解linux操作系统;对初学者很有帮助哦。

2010-11-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除