C#
文章平均质量分 67
akey307
这个作者很懒,什么都没留下…
展开
-
C# string类型浅谈
C#中所有的预定义类型都有对应的CTS类型。C#有15种预定义类型。其中包括13种值类型,和2种引用类型(string和object)。 虽然string是引用类型,但是它有一点不同,请看以下代码: string s1 = "a"; string s2 = s1; s1 = "b";·原创 2009-11-29 07:00:00 · 214 阅读 · 0 评论 -
隐藏函数与虚函数
(1)概述如果要隐藏函数,要使用new关键字;如果要重写(覆盖)虚函数,要使用virtual和override关键字。然后讲一下什么是申明类和实例类。举个例子: Bird b = new Magpie();Bird类就是申明类,而Magpie就是实例类。 接下来讲一下调用某个对象的函数的基本规律。该方法可以结合以下几节的实例具体运用。1、当调用一个对象的函数时,系统会直接去原创 2012-01-02 19:58:22 · 854 阅读 · 0 评论 -
Enumeration 的使用实例
例子出自 《Professional C# 4 and .NET 4》 public enum TimeOfDay { Morning = 0, Afternoon = 1, Evening = 2 } static void Main(string[]转载 2011-12-29 21:22:58 · 151 阅读 · 0 评论 -
C# 生成随机数与随机字符串
使用随机数只需要两步:(1) 创建随机种子,默认方式是以当前时间作为种子;Random r = new Random(), 但是如果同时产生大量随机数,就很可能重复。所以参见下面的种子。(2) 取随机数;int i = r.Next(0, 3) //注意这里是取[0, 3)的整数,但是取不到3(3) 顺便也贴上一个产生随机字符串的方法。原创 2009-12-27 06:44:00 · 782 阅读 · 0 评论 -
Generic methods specialization
转自《Professional C# 4 and .neT 4》泛型方法可以被重载(overload)。在下面这个例子中,Foo()方法有两个定义。第一个接受一个泛型参数;第二个是接受一个int参数。在编译期间,如果Foo()接受到了一个int参数,就使用第二个定义。对于其他类型的参数,则使用第一个定义。 public class MethodOverloads {转载 2012-01-05 06:15:22 · 203 阅读 · 0 评论 -
C# 正则表达式
<br />http://www.wangqi.com/html/2006-12/9250.htm<br /> <br /><br />字符语法<br />语法解释<br />语法例子<br />/d<br />匹配数字(0~9)<br />‘/d’匹配8,不匹配12;<br />/D<br />匹配非数字<br />‘/D’匹配c,不匹配3;<br />/w<br />匹配任意单字符<br />‘/w/w’ 匹配A3,不匹配@3;<br />/W<br />匹配非单字符<br />‘/W’匹配@,不匹配c转载 2010-09-28 05:37:00 · 157 阅读 · 0 评论 -
实现IFormattable接口的例子
参见C#高级编程(第4版)第8章字符串和正则表达式 classProgram { staticvoid Main(string[] args) { Vector v1 = newVector(1, 32, 5); Vector v2 = newVector(845.4, 54.3, -7.8); Console.WriteLine("/nIn IJK format, /nv1 is {0,30:IJK}转载 2010-09-08 20:06:00 · 189 阅读 · 0 评论 -
什么是装箱和拆箱
<br />转自 http://blog.csdn.net/yuyu622/archive/2007/09/07/1776604.aspx<br /> <br />装箱(boxing)和拆箱(unboxing)是.NET提出得新概念!<br /><br />.NET的所有类型都是由基类System.Object继承过来的,包括最常用的基础类型:int, byte, short,bool等等,就是说所有的事物都是对象。如果申明这些类型得时候都在堆(HEAP)中分配内存,会造成极低的效率!<br /><br /转载 2010-08-10 04:29:00 · 344 阅读 · 0 评论 -
C#文件的读写操作
文件的读操作 (1) 下面这行代码将首先检查文件是否存在,如果不存在抛出异常。(2) 打开文件,创建StreamReader对象。(3) 用StreamReader对象的ReadLine()方法来循环读取文件中的每一行。(4) 当s.ReadLine() == null的时候,就是读到了文件的末尾。(5) 最后别忘记关闭StreamReader原创 2009-12-27 01:10:00 · 169 阅读 · 0 评论 -
C# params
http://www.cnblogs.com/liuyong/archive/2009/06/11/1501012.html paramsparams 关键字可以指定在参数数目可变处采用参数的方法参数。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。 示例:字面意思比较难懂,所以看示例很有用。// k转载 2009-12-16 04:21:00 · 557 阅读 · 0 评论 -
C# 进制转换
(1) 十进制转换为二进制 int x = 10; string s = Convert.ToString(x, 2); (2) 十进制转换为八进制string s = Convert.ToString(x, 8); (3) 十进制转换为十六进制string s = Convert.ToString(x, 16)原创 2009-12-12 19:38:00 · 198 阅读 · 0 评论 -
C# 静态构造函数
参见 《C# 高级编程》第四版 · 编写静态构造函数的一个原因是,类有一些静态字段或属性,需要在第一次使用类之前,从外部源中初始化这些静态字段和属性。 · 静态构造函数至多运行一次,即在代码引用类之前执行。 · 静态构造函数没有访问修饰符,其他C#代码从来不调用它,所以像public和private这样的访问修饰符就没有意义了转载 2009-12-08 05:46:00 · 175 阅读 · 0 评论 -
C# 常量
参见《C#高级编程》第四版 常量 · 常量必须在声明时初始化。指定了其值后,就不能再修改了。 · 常量的值必须能在编译时用于计算。因此,不能用从一个变量中提取的值来初始化常量。如果需要这么做,应使用只读字段。 const int a = b + 1; // error · 常量总是静态的转载 2009-11-29 06:22:00 · 793 阅读 · 0 评论 -
C# 只读字段
参考《C#高级编程》第四版 只读字段可以在构造函数中给只读字段赋值,但不能在其他地方赋值,只读字段还可以是一个实例字段,而不是静态字段,类的每个实例可以有不同的值。与const字段不同,如果要把字段设置为静态,就必须显式声明。 如果有一个编辑文档的MDI程序,因为要注册,需要限制可以同时打开的文档数。现在假定要销售该软件的不同版本,而且顾客可以升级他们的版本,以便同时打开更多的文档转载 2009-11-26 19:00:00 · 419 阅读 · 0 评论 -
C#的一些运算符
参见《C#高级编程》第四版is 运算符is 运算符可以检查对象是否与特定的类型兼容。”兼容”表示对象是该类型,或者派生于该类型。例如,要检查变量是否与object类型兼容: int i = 10; if (i is object) { Console.WriteLine("i i转载 2009-11-26 18:54:00 · 208 阅读 · 0 评论 -
接口IEnumerable的使用实例
public class LinkedList : IEnumerable { public LinkedListNode First { get; private set; } public LinkedListNode Last { get; private set; } public LinkedListNode AddLast(ob转载 2012-01-03 23:26:16 · 460 阅读 · 0 评论