c#
文章平均质量分 67
heyuchang666
这个作者很懒,什么都没留下…
展开
-
C#值类型和引用类型
值类型和引用类型1、简单比较 值类型的变量直接存储数据,而引用类型的变量持有的是数据的引用,数据存储在数据堆中。 值类型(value type):byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。值类型变量声明后,不管是否已经赋值,编译器为其分配内存。引用类型(reference type):string 和 ...转载 2018-03-26 20:16:14 · 1205 阅读 · 0 评论 -
C#源代码—在windows窗体中添加一个名为lblShow的Lable控件3
int i = 25, j = 12; bool k; string result = " i!=j的值为" + (i != j); result += "\n i!=j && i>=j的值为" + (i != j && i >= j); result += "\n i!=j && i>=j+20的值为" +(i != j && i >= j + 20); result += "\n k原创 2016-01-13 11:01:09 · 1308 阅读 · 0 评论 -
C#源代码—在windows窗体中添加一个名为lblShow的Lable控件2
int i = 5, j = 5, p, q; p = (i++) + (i++) + (i++); q = (++j) + (++j) + (++j); string t = " "; lblShow.Text = i + t + j + t + p + t + q;原创 2016-01-13 10:57:01 · 1269 阅读 · 0 评论 -
C#源代码—在windows窗体中添加一个名为lblShow的Lable控件
1.在windows窗体中添加一个名为lblShow的Lable控件原创 2016-01-13 10:49:54 · 5434 阅读 · 1 评论 -
C#源代码—演示静态构造函数的使用
//调用实例构造函数创建对象,静态构造函数将自动被调用 Test t = new Test(1); //字段x和y都将被初始化 Console.WriteLine("{0},{1}",t.x,Test.y); //修改字段的值 t.x++; Test.y++; Console.WriteLine("{0},{1}", t.x, Test.y); //调用实例构造函数重新创建对象,但静原创 2016-01-13 11:47:01 · 606 阅读 · 0 评论 -
C#源代码—演示抽象类与抽象属性的使用,命名空间的使用
C#源代码—演示抽象类与抽象属性的使用,命名空间的使用原创 2016-01-13 11:54:55 · 2744 阅读 · 0 评论 -
c#源代码—演示类的继承性,类的多态性
c#源代码—演示类的继承性,类的多态性原创 2016-01-13 11:51:12 · 1362 阅读 · 0 评论 -
C#圆半径圆的周长,使用嵌套类型计算圆面上点到圆心的距离
C#圆半径圆的周长,使用嵌套类型计算圆面上点到圆心的距离原创 2016-01-13 11:22:32 · 2233 阅读 · 0 评论 -
不同类型常量测试
不同类型常量测试Console.WriteLine((0).GetType()); //有符号的32位整型常量 Console.WriteLine((0U).GetType()); //无符号的32位整型常量 Console.WriteLine((0L).GetType()); //64位的长整型常量 Console.WriteLine((0F).GetType()); //32位的浮点型常量 Console.WriteLine((0D).原创 2016-01-13 10:53:41 · 733 阅读 · 0 评论 -
C#中的Dictionary字典类介绍
必须包含名空间System.Collection.Generic Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值) 键必须是唯一的,而值不需要唯一的 键和值都可以是任何类型(比如:string, int, 自定义类型,等等) 通过一个键读取一个值的时间是接近O(1) 键值对之间的偏序可以不定义原创 2016-01-12 13:07:40 · 1476 阅读 · 0 评论 -
C#索引器
索引器(Indexer)是C#引入的一个新型的类成员,它使得类中的对象可以像数组那样方便、直观的被引用。索引器非常类似于属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。定义了索引器的类可以让您像访问数组一样的使用 [ ] 运算符访问类的成员。(当然高级的应用还有很多,比如说可以把数组通过索引器映射出去等等)索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的取值函数采用参数。索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似原创 2016-01-12 12:57:42 · 647 阅读 · 0 评论 -
C# 哈希表Hashtable与字典表Dictionary<K,V>的比较。
Hashtable 和 Dictionary <K, V> 类型 1):单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分.2):多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized()方法可以获得完全线程安全的类型. 而Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减.3):Dictionary 有按插入顺序排列原创 2016-01-12 12:45:19 · 12987 阅读 · 0 评论 -
解析C#中[],List,Array,ArrayList的区别及应用
[] 是针对特定类型、固定长度的。List 是针对特定类型、任意长度的。Array 是针对任意类型、固定长度的。ArrayList 是针对任意类型、任意长度的。Array 和 ArrayList 是通过存储 object 实现任意类型的,所以使用时要转换。原创 2016-01-12 10:56:27 · 2026 阅读 · 0 评论 -
奇偶排序Odd-even sort
奇偶排序Odd-even sort参看 维基百科的定义又一个比较性质的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序原创 2016-01-21 11:52:35 · 2793 阅读 · 0 评论 -
地精排序Gnome Sort
地精算法总是发现第一个 【两个相邻元素存在错误的顺序】,然后把他们交换。原理是,交换一对乱序元素后,会产生一对新的无序相邻元素,而这两个元素要么交换前有序,要么交换后有序。它不认为元素当前的位置是有序的,所以它只需要在交换元素前直接检查位置。原创 2016-01-21 11:37:53 · 535 阅读 · 0 评论 -
C#源代码—求最大数,形参为普通数组,实参必须为数组名
求最大数,形参为普通数组,实参必须为数组名原创 2016-01-13 11:29:21 · 1007 阅读 · 0 评论 -
C#源代码—值类型参数演示,引用类型参数演示
值类型参数演示,引用类型参数演示原创 2016-01-13 11:26:26 · 543 阅读 · 0 评论 -
C#源代码—统计从键盘输入一行字符英文字母的个数
统计从键盘输入一行字符英文字母的个数do { c =(char)Console.Read(); if (c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z') { n++; } } while (c != '\n');原创 2016-01-13 11:17:50 · 14100 阅读 · 0 评论 -
ComInterfaceType
using System;namespace System.Runtime.InteropServices{ [ComVisible (true)] [Serializable] public enum ComInterfaceType { InterfaceIsDual, InterfaceIsIUnknown, InterfaceIsIDispatch }}转载 2018-01-05 11:09:55 · 1038 阅读 · 0 评论 -
C#中ICollection介绍
ICollection 接口是 System.Collections 命名空间中类的基接口,ICollection 接口扩展 IEnumerable,IDictionary 和 IList 则是扩展 ICollection 的更为专用的接口。如果 IDictionary 接口和 IList 接口都不能满足所需集合的要求,则从 ICollection 接口派生新集合类以提高灵活性。IColl转载 2018-01-04 19:03:52 · 16869 阅读 · 0 评论 -
C#常用函数表
1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前日 int 日=currentTime.Day; 1.5 取当前时 int 时=currentTime.Hour;转载 2017-04-21 17:01:32 · 683 阅读 · 0 评论 -
C#中关于String类型的常用方法
Equals(string value)返回一个BOOL型,比较是否相等,和"=="类似Compareto(string value)判断大小,大返回1 小返回-1 相等返回0IndexOf(string value)在当前字符串里找到这个字符,从第一个开始找,找到就返回第一次找到所在的索引,如果找不到返回-1例: 1123 如果找1的话 返回0原创 2017-03-13 19:19:16 · 3064 阅读 · 0 评论 -
Unity中Json创建,解析
我用的是LitJson.dll,JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 Json创建中writer.WriteObjectStart ();就等同于“{”,writer.WriteObjectEnd ()就等同于“}”,最后要转换成string型,json = writer原创 2016-01-14 23:43:28 · 6081 阅读 · 3 评论 -
桶排序Bucket sort
桶排序 (Bucket sort)或所谓的箱排序,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n)下限的影响。原创 2016-01-21 11:13:31 · 993 阅读 · 0 评论 -
学习笔记总结
多态是什么? 同一个事件不同的做法, 目标一致,实现是多变的为什么需要多态? 同一个方法对于子类会有不同的实现,关注行为的变化如何体现多态? 将变化的行为封装后形成抽象,将具体实现推迟到子类。原创 2016-01-15 15:08:08 · 714 阅读 · 0 评论 -
XML的使用,增删改查(Unity中的)
<root_CharacterTmp> <CharacterTmp id="1000" name="xml"> <JobID>2</JobID> <JobMode>none</JobMode> <InitForce>2.2</InitForce> </CharacterTmp> <CharacterTmp name="name1"> <JobID> </JobID> <JobMode>none</JobMode> <InitForce>2.原创 2016-01-14 23:25:16 · 1876 阅读 · 0 评论 -
C#源代码—在文本框中随意输入一个日期,单机“确定”按钮时显示这一天是星期几?
在文本框中随意输入一个日期,单机“确定”按钮时显示这一天是星期几 enum Weekday {星期天,星期一,星期二,星期三,星期四,星期五,星期六}; private void button1_Click(object sender, EventArgs e) { DateTime dt = Convert.ToDateTime(textBox1.Text); Weekday wd = (Weekday)dt.DayOfWee原创 2016-01-13 12:25:29 · 3327 阅读 · 0 评论 -
C#源代码—猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多 吃了一个。以后每天都吃前一天剩下的一半再加一个。到第10天刚好剩一个。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个。以后每天都吃前一天剩下的一半再加一个。到第10天刚好剩一个。问猴子第一天摘了多少个桃子?原创 2016-01-13 12:20:40 · 10737 阅读 · 2 评论 -
C#源代码—委托的演示,利用多路广播机制优化
CaculateOfNumber cn = new CaculateOfNumber(); //创建一个对象 cn.handler = new Caculate(cn.Product); //初始化委托型字段 //通过委托来调用方法 Console.WriteLine("{0}与{1}的乘积为{2}", a,b,cn.handler(a,b)); cn.handler = new Caculate(cn.Average)原创 2016-01-13 12:10:00 · 952 阅读 · 0 评论 -
C#源代码—在windows窗体中添加窗体控件,btnOK按钮的Click事件
private void btnOk_Click(object sender, EventArgs e)//定义btnOK按钮的Click事件 { Student a = new Student(); //用Student类定义变量a,并初始化 a.no = Convert.ToInt32(txtStuID.Text); a.name = txtName.Text;原创 2016-01-13 11:04:11 · 7374 阅读 · 0 评论 -
C#源代码—从数组x复制到数组y,将数组x的元素排序
int[] x,y; //声明数组 x = new int[5] { 1,5,3,2,4}; //初始化数组 y = new int[5]; Array.Copy(x, y, 5); //将数组x的5个元素复制到数组y中 Console.WriteLine("成功地从数组x复制到数组y,数组y各元素值如下:"); for (int i = 0; i < y.L原创 2016-01-13 11:11:02 · 1102 阅读 · 0 评论 -
C#源代码—在windows窗体中添加一个名为lblShow的Lable控件4,创建可变字符串,字符串转换为字符型
string s; //定义字符串变量 StringBuilder sb = new StringBuilder(); //创建可变字符串对象 sb.Append("北运"); //添加字符串 sb.Insert(1, "京奥"); //插入字符串 s = sb.ToString(); //把可变字符串对象转化为字符串 s =原创 2016-01-13 11:15:12 · 2053 阅读 · 0 评论 -
鸽巢排序Pigeonhole sort
鸽巢排序, 也被称作基数分类, 是一种时间复杂度为(Θ(n))且在不可避免遍历每一个元素并且排序的情况下效率最好的一种排序算法. 但它只有在差值(或者可被映射在差值)很小的范围内的数值排序的情况下实用。当涉及到多个不相等的元素, 且将这些元素放在同一个"鸽巢"的时候, 算法的效率会有所降低.为了简便和保持鸽巢排序在适应不同的情况, 比如两个在同一个存储桶中结束的元素必然相等。 我们一般很少使用鸽巢排序, 因为它很少可以在灵活性, 简便性, 尤是速度上超过其他排序算法. 事实上, 桶排序较鸽巢排原创 2016-01-21 11:00:35 · 1245 阅读 · 0 评论 -
Unity中鼠标左键按下,拖拽物体移动
鼠标左键按下,拖拽物体移动private Vector3 _vec3TargetScreenSpace;// 目标物体的屏幕空间坐标 private Vector3 _vec3TargetWorldSpace;// 目标物体的世界空间坐标 private Transform _trans;// 目标物体的空间变换组件 private Vector3 _vec3MouseScreenSpace;// 鼠标的屏幕空间坐标 private Vector3 _vec3Offset;原创 2015-12-17 21:32:15 · 1642 阅读 · 0 评论 -
23种设计模式(14)_行为型_命令模式(Command Pattern)
定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式的封装性很好:每个命令都被封装起来,对于客户端来说,需要什么功能就去调用相应的命令,而无需知道命令具体是怎么执行的。比如有一组文件操作的命令:新建文件、复制文件、删除文件。如果把这三个操作都封装成一个命令类,客户端只需要知道有这三个命令类即可,至于命令类中封装好的逻辑,客户端则无需知道。其次,命令模式的扩展性很好,在命令模式中,在接收者类中一般会对操作进行最基本的封装,命令原创 2015-12-27 16:39:44 · 744 阅读 · 0 评论 -
23种设计模式(13)_行为型_模版方法模式(Template Method)
定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。这就是模版方法模式。大部分刚步入职场的毕业生应该都有类似B的经历。一个复杂的任务,由公司中的牛人们将主要的逻辑写好,然后把那些看上去比较简单的方法写成抽象的,交给其他的同事去开发。这种分工方式在编程人员水平层次比较明显的公司中经常用到。比如一个项目组,有架构师,高级工程师,初级工程师,则一般由架构师使用大量的接口、抽象类将整个系统的逻辑串起来,实现的编码则根据难度的不同分别交给高级工程师和初级工原创 2015-12-26 18:37:06 · 667 阅读 · 0 评论 -
23种设计模式(8)_结构型_装饰者模式(Decorator Pattern)
装饰者模式优点:装饰这模式和继承的目的都是扩展对象的功能,但装饰者模式比继承更灵活。通过使用不同的具体装饰类以及这些类的排列组合,设计师可以创造出很多不同行为的组合。装饰者模式有很好地可扩展性。缺点:装饰者模式会导致设计中出现许多小对象,如果过度使用,会让程序变的更复杂。并且更多的对象会是的差错变得困难,特别是这些对象看上去都很像。原创 2015-12-27 18:33:59 · 658 阅读 · 0 评论 -
23种设计模式(12)_结构型_代理模式(Proxy Pattern)
代理模式——就是给某一个对象提供一个代理,并由代理对象控制对原对象的引用。在一些情况下,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。例如电脑桌面的快捷方式就是一个代理对象,快捷方式是它所引用的程序的一个代理。优点:代理模式能够将调用用于真正被调用的对象隔离,在一定程度上降低了系统的耦合度;代理对象在客户端和目标对象之间起到一个中介的作用,这样可以起到对目标对象的保护。代理对象可以在对目标对象发出请求之前进行一个额外的操作,例如权限检查等。缺点:由于在客户端和真实原创 2015-12-28 12:10:29 · 742 阅读 · 0 评论 -
23种设计模式(11)_结构型_享元模式(Flyweight Pattern)
享元模式——运用共享技术有效地支持大量细粒度的对象。享元模式可以避免大量相似类的开销,在软件开发中如果需要生成大量细粒度的类实例来表示数据,如果这些实例除了几个参数外基本上都是相同的,这时候就可以使用享元模式来大幅度减少需要实例化类的数量。如果能把这些参数(指的这些类实例不同的参数)移动类实例外面,在方法调用时将他们传递进来,这样就可以通过共享大幅度地减少单个实例的数目。优点:降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。缺点:为了使对象可以共享,需要将一些状态外部化,这使得程序的逻辑原创 2015-12-27 20:42:00 · 676 阅读 · 0 评论 -
23种设计模式(10)_结构型_外观模式(Facade Pattern)
外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端可以直接通过外观类来调用内部子系统中方法,从而外观模式让客户和子系统之间避免了紧耦合。优点:外观模式对客户屏蔽了子系统组件,从而简化了接口,减少了客户处理的对象数目并使子系统的使用更加简单。外观模式实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件是紧耦合的。松耦合使得子系统的组件变化不会影响到它的客户。缺点:如果增加原创 2015-12-27 20:37:23 · 689 阅读 · 0 评论