随笔分类 -  .NET根基

不积跬步无以至千里,不积小流无以成江海。
摘要:读操作 //1.创建文件流 FileStream fsRead =new FileStream("1.txt",FileMode.Open); //2.创建缓冲区,正常情况下,是不会直接等于文件大小的。这里只有读,所以就这么干了。 byte[] bytes =new byte[fsRead.Length]; //3.开始读取, 返回值是读取到的长度。 int r =fsRead.R... 阅读全文
posted @ 2015-01-06 07:32 大黑兔 阅读(1267) 评论(0) 推荐(2)
摘要:常用类库之.NET中的字符串字符串的特性1.不可变性 由于字符串是不可变的的,每次修改字符串,都是创建了一个单独字符串副本(拷贝了一个字符串副本)。之所以发生改变只是因为指向了一块新的地址。 2.字符串池(只针对字符串常量) 当一个程序中有多个相同的字符串常量时,多个变量指向的是内存中同一块字符串!... 阅读全文
posted @ 2015-01-05 15:35 大黑兔 阅读(4279) 评论(1) 推荐(4)
摘要:关于IO简介 .NET中的IO操作,经常需要调用一下几个类。 1.FileStream类 文件流类,负责大文件的拷贝,读写。 2.Path类 Path类中方法,基本都是对字符串(文件名)的操作,与实际文件没多大关系。 3.File类 File... 阅读全文
posted @ 2015-01-05 14:46 大黑兔 阅读(1326) 评论(0) 推荐(0)
摘要:.NET中的异常(Exception).net中的中异常的父类是Exception,大多数异常一般继承自Exception。可以通过编写一个继承自Exception的类的方式,自定义异常类!异常处理机制Try{ 可能发生异常的代码 后续代码 }Try以外的代码 catch(Exception e) ... 阅读全文
posted @ 2015-01-04 01:05 大黑兔 阅读(1621) 评论(0) 推荐(0)
摘要:DateTime简介DateTime是.NET中的时间类型,可以通过DateTime完成诸如获取当前的系统时间等操作。DateTime在.NET中是一个结构体,而并不是一个类。如上图所示,这个图标在VS中 表示结构体。DateTime的常用方法和成员1.Now获取当前系统时间。格式如下图2.Toda... 阅读全文
posted @ 2015-01-03 16:33 大黑兔 阅读(2155) 评论(1) 推荐(1)
摘要:为什么要使用StringBuilder 为什么使用StringBuilder要从string对象的特性说起。 string对象在进行字符串拼接时,因为字符串的不可变性,string对象会每次拼接,都会复制一个副本出来进行运算,而本身的串仍然留在内存中,大量的临时片段会造成不可忽视的性能损耗。所以在进行大量的字符串拼接时建议使用StringBuilder StringBuilder的... 阅读全文
posted @ 2015-01-03 14:36 大黑兔 阅读(1059) 评论(0) 推荐(0)
摘要:本章借介绍一些粗浅的Timer控件使用方法。 介绍Timer控件的常用属性和事件 1.Interval属性表示 Timer控件的时间间隔。 类型是int默认是毫秒。 2.Enabled属性 表示Timer控件是否激活。 如果激活的话,一进入Timer的Tick事件就开始执行。所以默认是false 3.Start()方法 开始执行 4.Sto... 阅读全文
posted @ 2015-01-03 13:14 大黑兔 阅读(850) 评论(0) 推荐(1)
摘要:字符串的特性1.不可变性 由于字符串是不可变的的,每次修改字符串,都是创建了一个单独字符串副本(拷贝了一个字符串副本)。之所以发生改变只是因为指向了一块新的地址。 ps:vs2005 即时窗口 &变量,取地址。。 vs2010以上 即使窗口 *变量 ,只取堆地址。 2.字符串池(只针对字符串常量) ... 阅读全文
posted @ 2015-01-02 21:22 大黑兔 阅读(2423) 评论(6) 推荐(4)
摘要:反编译是我们理解.NET内部实现的一种良好的手段。 程序编译时 Test.exe是IL代码。我们可以通过一些工具,来查看这些IL代码。 一模一样? 理论上来说,一模一样的反编译是不存在的。原因有以下3点: 1. 注释不通过编译程序,自然木有注释。 2. .NET编译器会做一些优化,例如 int i= 5+6 ; 编译时直接表述成 i=11了、无用变量直接过滤。 (i=5+6这种方式写代码不... 阅读全文
posted @ 2014-12-26 21:25 大黑兔 阅读(410) 评论(0) 推荐(0)
摘要:小数(浮点数)在计算机中为什么会有误差?详细说明机器数、码制、浮点数、以及数制转换的一些问题。 进制的转换,反码,补码,原码等各种基本功法的介绍。 阅读全文
posted @ 2014-12-26 21:13 大黑兔 阅读(2245) 评论(0) 推荐(0)
摘要:1. 方法中return 会终止整个方法段。 而break只能终止当前循环。 2. 方法就是一对可用代码的复用。 a . 对于可重用的代码,在vs中选中,右键 重构 提取方法。即可自动封装成一个方法。 b . 编程中,当我们调用的一个未定义的方法。 Ctrl + . 然后Enter。会自动生成相应的方法。 3. 对于方法返回值,如果定义了返回值,方法中必须有对应的return。 没... 阅读全文
posted @ 2014-12-26 15:58 大黑兔 阅读(431) 评论(0) 推荐(0)
摘要:1.初始值问题 对于int、double、float等一些值类型数组,没有赋值的情况下, 默认值是0; 而对于String 等引用类型,初始值为null。 2.IndexOutOfRangeException 数组下标越界,要保证 数组下标>Length。 3.数组不能动态增加大小! ArrayList 和 List可以。 ----------------------------... 阅读全文
posted @ 2014-12-25 23:00 大黑兔 阅读(406) 评论(0) 推荐(0)
摘要:1.不能这样贯穿 我们知道,java 和 C在使用switch时候可以这样。 switch (i) { //java中此处不使用break // 执行了case 1:对应的语句后直接 贯穿到 case 2:中的语句。 case 1: ... 阅读全文
posted @ 2014-12-25 22:57 大黑兔 阅读(490) 评论(0) 推荐(1)
摘要:||和| 、&&和&的区别这里以&&和&为例。或与之一直1.&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。2.&&还具有短路的功能,即如果第一个表达式为false,则不再计... 阅读全文
posted @ 2014-12-24 23:31 大黑兔 阅读(863) 评论(0) 推荐(0)
摘要:1、下面程序的执行结果是什么? int a=3; int b=4; Console.WriteLine(a==b); //false Console.WriteLine(a=b); // 4 赋值表达式本身也是有值得。 2、赋值运算本身也是一个值,这个值就是赋值之后左边的值。 int i=(a=b)+3; Console.WriteLine(i); 这个b1呢?bool b1 = (a=b); 这... 阅读全文
posted @ 2014-12-24 23:30 大黑兔 阅读(475) 评论(0) 推荐(0)
摘要:1.交换两个变量的值(使用第三个变量) 这是我第一次接触编程世界的一个思维。 让两个被子的水兑换,需要第三个杯子。 折腾一下就好了。 2.交换两个变量的值(不使用第三个变量) N1 =10; N2 = 20; N1 = N1 + N2; //N1是全部的水 N2 = N1 - N2; //在全部的水中,倒掉N2的水。N2就成了N1 N1 = N1 - N2; //在全部的水中,... 阅读全文
posted @ 2014-12-24 23:29 大黑兔 阅读(287) 评论(0) 推荐(0)
摘要:我理解的枚举就是编程中约定的一个“可选值”;例如QQ的在线状态,分别有 在线,Q我吧,隐身,忙碌等等。。。我觉得这就是一个枚举。 1.普通枚举 1) 实例 public enum UserState { QMe, OnLine, OffLine //后面省略 } ps:像上边的枚举,可以单独写在一个C... 阅读全文
posted @ 2014-12-24 23:28 大黑兔 阅读(479) 评论(0) 推荐(1)
摘要:CTS:Common Type System 通用类型系统。 1.不仅可以把C#编译成.Net IL,还支持Basic、Python、Ruby等语言,甚至还支持Java。不同语言中的数据类型定义是不一样的,.Net中定义了通用的数据类型(CTS,Common Type System):String、Int16、Int32、Int64、Boolean、Double。通过转到定义可以看到这些都是类(结... 阅读全文
posted @ 2014-12-24 23:27 大黑兔 阅读(617) 评论(1) 推荐(0)
摘要:1.JAVA和C# Byte的不同。 java里一个byte取值范围是-128~127, 而C#里一个byte是0~255. 首位不同. 但是底层I/O存储的数据是一样的, 比如, 十进制的100, 转换成java或者c#的byte, 都是1100110. 但是, 使用java的getBytes()方法, 得到的是负数,即: -100110 使用C#的ge... 阅读全文
posted @ 2014-12-24 23:26 大黑兔 阅读(505) 评论(0) 推荐(0)
摘要:1.关键字 C#定义了一些关键字(public/static/void/class/int/string),这些关键字是构成C#基本语法用的。 VS中蓝色字的才是关键字。 Main、String、Console等这些都不是关键字。而只是.NET类库提供的一些方法,属性等。。。理论上讲,如果你不引用这些库,就没有这些东东。 2.标识符 标识符是用来给类、方法、变量等命名用的。 命名规则(法律级别,不... 阅读全文
posted @ 2014-12-24 23:25 大黑兔 阅读(763) 评论(0) 推荐(1)