C#面向对象高级语法(二)
摘要:类的转换is运算符 using System;classClass1{} class Class2 { } class IsTest { static void Test(Object o) { Class1 a; Class2 b; if (o is Class1) { Console.WriteLine("o is Class1"); a = (Class1)o;// do something for a } else if (o is Class2) { Console.WriteLine("o is Class2"); b = (Class2)o
阅读全文
posted @
2012-11-13 22:37
Frank.Fan
阅读(801)
推荐(0) 编辑
C#面向对象高级语法(一)
摘要:密封(sealed)类和方法 sealed关键字可以用来修饰类、变量和方法。sealed修饰符放在类之前,就将类声明为密封类,表示该类不能被继承。密封类主要防治意外的派生,同时可以提高程序的运行性能。在非密封类中,如果要防止一个实例成员在子类中被重写,就可以将该成员声明为密封成员,包括密封方法、密封属性、密封索引器等。对于密封方法,它只能用于对基类的虚方法进行重写,并提供具体的实现。所以在密封方法的声名中,sealed修饰符总是和override修饰符同时使用,以防止派生类进一步重写该方法。 比如: 1 using System; 2 class A 3 { 4 public vir...
阅读全文
posted @
2012-11-04 22:26
Frank.Fan
阅读(1751)
推荐(0) 编辑
C#中static关键字
摘要:静态变量和静态方法静态(static)变量 静态变量(类变量)是一种全局变量,它可以在各个对象实例间共享。class ABCD{ char data; static int share_data;}class StaticDemo{ ABCD a,b,c,d;}上述4个对象a,b,c,d共同拥有静态变量share_data.static变量的生存期不依赖于对象,其他类可以不通过实例化访问他们:public class StaticVar{ public static int number = 5;}public class OtherClass{ public v...
阅读全文
posted @
2012-11-03 23:47
Frank.Fan
阅读(837)
推荐(0) 编辑
C#可空类型(Nullable Types)
摘要:在讨论可空类型前,先回顾一下.NET对于类型的定义:".NET中类型分为值类型和引用类型,值类型不能为空,引用类型可为空";在这样的前提下,所有值类型都赋予了一个初始值例如:inti;(初始为0);由于数据库中出现的对应的值类型可为空,这样就出现了两者不能对应的问题。所有在C#2.0中引入了可为空的值类型,强调一点可空类型对于是值类型而言。实现方法如下:int i = 3;//一个值类型 int? k = 3;//一个可为空的值类型(简称可空类型) int m = null;//错误 int? j = null;//正确 从上面的例子我们可以看到在值类型后加上?可以定义一个
阅读全文
posted @
2012-11-01 20:38
Frank.Fan
阅读(2267)
推荐(0) 编辑
身份证号码15位转18位 C#实现
摘要:【身份证最后一位神秘X的由来】身份证中的“冷知识”1999年的今天,《国务院关于实行公民身份号码制度的决定》被发布,当年10月1日实施。为什么有的有X?这位数是根据前17位计算出的校验码。如某人尾号是0-9,不会有X,如是10,则用X代替。Ⅹ是罗马数字的10,这能保证身份证号不多位。/// /// 转换15位身份证号码为18位/// /// 15位的身份证/// 返回18位的身份证private string IDCard15To18(string oldIDCard){ int iS = 0; //加权因子常数 int[] iW = new int[] { 7, 9, 1...
阅读全文
posted @
2012-11-01 20:28
Frank.Fan
阅读(3536)
推荐(1) 编辑
C#中return、break和continue语句
摘要:returnreturn语句用于指定函数返回的值。return语句只能出现在函数的体内,出现在代码中的其他地方会出现语法错误。当执行return语句时,即使函数体内还有其他语句函数也会停止。public static void Do(){ return; } breakbreak语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句。由于它是用来退出循环或者switch语句,所有只有当它出现在这些语句中时break语句才是合法的。如果一个循环语句的终止条件非常复杂,那么使用break语句来实现某些条件比用循环表达式容易的多。比如:for (int i = 0; i...
阅读全文
posted @
2012-11-01 20:24
Frank.Fan
阅读(678)
推荐(0) 编辑
C#中的String.Format
摘要:把doubel保留2位有效数字double d = 123;string res = string.Format("{0:F2}",d);结果是:d = 123.00参考:string str1 =string.Format("{0:N1}",56789); //result: 56,789.0string str2 =string.Format("{0:N2}",56789); //result: 56,789.00string str3 =string.Format("{0:N3}",56789); //r..
阅读全文
posted @
2012-11-01 20:02
Frank.Fan
阅读(310)
推荐(0) 编辑
判断一个字符串是不是数字
摘要:判断一个字符串是不是数字的方法:1. 最简单的方法public bool IsNumber(string str){ int number = 0; return int.TryParse(str,out number);}这个方法适用于日常生活中遇到的大多数情况,可是如果碰到极端的情况,比如超过了int类型所能承受的最大值int.MaxValue(2147483647)就会失败。2.一个万无一失的方法public static bool IsNumber(string numericText){ bool isNumber = false; foreach (char...
阅读全文
posted @
2012-11-01 19:49
Frank.Fan
阅读(843)
推荐(1) 编辑
String.Empty、string=”” 和null的区别
摘要:String.Empty是string类的一个静态常量;String.Empty和string=””区别不大,因为String.Empty的内部实现是:public static readonly string Empty;//这就是String.Empty 那是只读的String类的成员,也是string的变量的默认值是什么呢?//String的构造函数static String(){ Empty = "";//Empty就是他"" WhitespaceChars = new char[] { '\t', '\n', &
阅读全文
posted @
2012-11-01 19:09
Frank.Fan
阅读(28320)
推荐(10) 编辑