自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 关于Unity的Mask

前几天做滑动列表,需要用Mask做裁切。因为不需要图片做背景,就直接建了一个空物体,然后加上了Mask组件,之后发现没有出现裁切的效果。后来才发现,Mask组件进行裁切需要有Image组件,同时也要有一个Image带的Unity自动生成的Shader.最好是直接新建一个Image(该Shader会自动添加上去),然后在其上添加Mask组件。 ...

2018-09-28 18:12:09 2561

原创 扑克算法

 主程让我写个扑克牌算法练练手,要求给用户随机发13张牌,能判断对子,连子。我当时的想法是写一个扑克牌的类,不同的花色用枚举表示,然后用常量来限制不同花色扑克牌的张数。后来功能确实能够实现,但时间复杂度很高,主程说如果是商业项目后续增加功能可能会出现很多隐藏Bug。后来主程给我简单的讲了讲他算法的简易思路:(PS:真正做的时候数组不要用Int类型,用byte类型,这里只是为了更好理...

2018-09-28 17:43:36 2369

原创 读书笔记:改善C#程序的建议1-15

建议一:正确操作字符串(1)、确保尽量少的装箱(2)、避免分配额外的内存空间装箱拆箱的步骤:1)首先会为值类型在托管堆中分配内存。除了值类型本身所分配的内存外,内存总量还要加上类型对象指针和同步块索引所占用的内存。2)将值类型的值复制到新分配的堆内存中。3)返回已经成为引用类型的对象的地址。完成运行时的字符串拼接,用StringBuilder类型比String更佳。建议二:...

2018-09-07 15:22:09 218

原创 C#反射,System.Type类用法,用构造方法动态生成对象,用Activator生成对象,System.Reflection.Assembly类,

1、通过反射可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举)的成员和成员的信息。通过反射可以直接创建对象,即使这个对象的类型在编译时还不知道。反射主要作用:(1)、获取类型的相关信息(2)、动态调用方法(3)、动态构造对象(4)、从程序集中获得类型2、反射用到的命名空间: using System.Reflection; using System.Type; using ...

2018-05-10 20:02:57 5229

原创 C#可空类型,匿名方法,迭代器,自动实现属性,隐式类型,对象集合初始化器,匿名类型,Lambda表达式,变量范围

1、可空类型:引用类型的默认值为null,值类型的默认值为0。但有时候会需要值类型的值为null,故而有了非空类型。eg、(1)、public static void Main(){ int? a = null;//可空类型,并没有int?这种类型,这只是C#提供的一种方便形式,编译器会自动去转化 Console.WriteLine (a); Nullable<int> b = nul...

2018-04-28 17:47:00 381

原创 C#约束,泛型高级:泛型委托,泛型接口,泛型方法重载

1、值类型约束:将一个类型形参(T)限定为值类型。值类型派生于System.ValueType类型。值类型约束格式:where T:structeg、public static void Main(){ int a = 9; func (a);+}public static void func<T>(T t) where T :struct{ Console.WriteLine (t)...

2018-04-28 17:44:48 947

原创 C#ArrayList,泛型基础

1、ArrayList是一个极为方便的集合类,无需进行修改即可用于存储任何引用或值类型。但是添加的数据为值类型时需要装箱,检索时需要拆箱,装箱和拆箱会降低性能。故而提供了泛型。eg、泛型-类型名称:在调用时根据实参来确定T的类型public static void print<T>(T a){ Console.WriteLine (a);}public static void Main...

2018-04-28 17:43:21 1101

原创 C#单例模式,this关键字,索引器

1、单例模式:保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并未客户程序提供一个获取该实例的全局访问点。eg、class SignleTon{//类是对象的抽象类型 private static SignleTon instance;//声明一个对象,对象名为instance,该对象的类型是SignleTon; private string name; private Sig...

2018-04-28 17:41:50 499

原创 C#结构体,结构体与类的区别,运算符重载

1、结构体:在形式上和类很相似,都是一种数据结构,可以包括数据成员和方法。struct 结构体名称{ 字段 属性 方法...}2、结构体与类的区别:(1)、结构体是struct关键字,类是class关键字。(2)、结构体不能在声明时直接对字段初始化,类可以。(3)、结构体无论有没有声明构造函数,默认构造函数一直存在。类中一旦声明了构造函数,编译器都不再提供默认构造。(4)、结构体不能显式地声明无参...

2018-04-28 17:40:37 1026

原创 c#方法重载,构造函数,析构函数,readonly与const区别

1、方法重载:在同一作用域中,有多个方法名相同的方法,参数类型不同或者参数个数不同。public static void print () { Console.WriteLine ("1"); }//调用:print(); public static void print(int a) { Console.WriteLine (a); }//调用:print(5); public static...

2018-04-28 17:39:09 204

原创 C#接口实现、调用,接口显式与隐式的区别,接口与密封类的区别

1、接口:用于描述一组类的公共方法(或属性),并不对方法作任何的实现。接口使继承于它的类的方法都具有统一的命名规范,同时可以用接口来实现“多继承”。(C#不支持多继承)。(1)、类继承了接口就必须实现接口中的所有成员和属性。(2)、不能实例化一个接口。(3)、接口中的方法不能直接去实现,必须在继承它的类中实现。2、接口中定义方法不能添加任何的访问修饰符,默认为公有。并且不能有static关键字。接...

2018-04-28 17:34:57 357

原创 C#面向对象的三大特性

1、封装:将变量和对变量的所有操作都封装在一个集合中,并将内部数据隐藏起来,从而提高内部数据的安全性2、派生类直接使用基类定义好的字段和方法,从而实现代码的复用。(1)、继承后的派生类将获得除了构造函数和析构函数以外的所有成员。(2)、静态类不能被继承。(3)、基类的私有成员,派生类不能直接访问。  1)、派生类通过基类的公有方法或属性来访问基类的私有成员。  2)、将基类中的私有(priva...

2018-04-28 17:32:23 171

原创 C#数据类型,值类型,引用类型与转换

1、数据类型分类:值类型与引用类型值类型:简单类型(int,short,long,float,byte,double,char,decimal(16字节的小数));结构类型,枚举类型;引用类型:数组类型,类类型,字符串,接口,指针类型2、值类型:派生自System.ValueType.在存储在栈上;引用类型:直接从System.Object继承,被分配在堆上,变量保存的是实例数据的内存地址。区别:...

2018-04-28 17:30:21 700

原创 C#委托,事件

1、C#中的委托可以理解为函数的一个包装,它使得C#中的函数可以作为参数进行传递。委托是方法的抽象,它存储的就是一系列具有相同签名和返回值类型的方法的地址。调用委托时,委托包含的所有方法将被执行。能被委托包装的方法的限制:(1)、方法的签名必须与委托一致,方法签名包括参数的个数,类型和顺序。(2)、方法的返回类型要和委托一致。eg、B同学有事出不了门,委托A同学帮忙带吃的class A{ publ...

2018-04-28 17:29:09 103

空空如也

空空如也

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

TA关注的人

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