程序点滴jcodeer.blog.chinaunix.net
jcodeer
全部博文(171)
2012年(2)
2011年(70)
2010年(9)
2009年(14)
2008年(76)
Bean_lee
GY123456
armlife
linky521
g_progra
猥琐才是
athzhang
CU博客助
meiyang_
heq76
gaokeke1
yangyefe
yanganni
tomcodin
qhy95020
allaxin
suntao32
13661379
分类: C/C++
2008-03-23 20:05:50
using System; /// /// Summary description for Class1 /// public class StaticTest { public StaticTest() { currentValue = 0; //统计当前有多少个实例 staticCount++; } //static成员的一个用法: //显示当前有多少个StaticTest实例,在构造函数中将计数加1;在析构函数中将计数减1 public static void HowManyStaticTest() { Console.WriteLine("Num of StaticTest is {0}", staticCount); } ~StaticTest() { staticCount--; } //静态构造函数 static StaticTest(/**/) { currentValue = 50; Console.WriteLine("currentValue of StaticTest = {0}", currentValue); } //打印当前值 static public void PrintValue() { Console.WriteLine("StaticTest.currentValue = {0}", currentValue); } //设置当前值 static public void SetValue(int value) { currentValue = value; } //获取当前值 static public int GetValue() { return currentValue; } public static void test() { //显示当前的实例个数 StaticTest.HowManyStaticTest(); //静态成员及静态函数的使用方法 StaticTest.SetValue(20); Console.WriteLine("StaticTest.currerntValue = {0}", StaticTest.GetValue()); new StaticTest(); { new StaticTest(); StaticTest.HowManyStaticTest(); } new StaticTest(); StaticTest.HowManyStaticTest(); /******************************************************************* * 静态方法不允许使用实例类型进行调用,必须使用class * StaticTest stInstance = new StaticTest(); * stInstance.SetValue(20); *******************************************************************/ } //初始化当前值为10 static int currentValue = 10; static int staticCount = 0; } class DisposeTest : IDisposable { public DisposeTest() { Count++; } public void Dispose() { Count--; GC.SuppressFinalize(this); } public static void HowManyDisposeTest() { Console.WriteLine("Num of DisposeTest is {0}", Count); } public static void test() { //使用Dispose,跟踪对象销毁 DisposeTest.HowManyDisposeTest(); new DisposeTest(); DisposeTest.HowManyDisposeTest(); //跳出这个using作用域后,将会调用Dispose函数 using (new DisposeTest()) { //新创建一个,此时的计数应为 DisposeTest.HowManyDisposeTest(); } //using使用域中的一个Dispose对象被销毁了 DisposeTest.HowManyDisposeTest(); new DisposeTest(); DisposeTest.HowManyDisposeTest(); } //当前实例的个数 private static int Count = 0; }
using System; /// /// Summary description for Class1 /// public class Text { /************************************************************************ * 功能 * 默认构造函数 * **********************************************************************/ public Text() { appName = null; } /************************************************************************/ /* 功能 * 重载构造函数,使用一个字符串参数进行初始化appName * 参数 * 指定App的名称 */ /************************************************************************/ public Text(string name) { appName = name; } /************************************************************************ * 功能:复制构造函数 * 创建对象时,如果其参数为另一个已经存在的对象,则调用此函数 * 参数 * 已存在的Text对象 * **********************************************************************/ public Text(Text existText) { appName = existText.appName; appCount = existText.appCount; } /************************************************************************/ /* 功能 * 显示当前文本内容 /************************************************************************/ public void DisplayText() { Console.WriteLine("appName = {0}",appName); Console.WriteLine("appCount = {0}", appCount); } //测试构造函数的用法 public static void test() { //默认构造函数 Text appName = new Text(); appName.DisplayText(); //带有一个string参数的构造函数 Text appNameParam = new Text("appNameParam"); appNameParam.DisplayText(); //复制构造函数 Text appNameCopy = new Text(appNameParam); appNameCopy.DisplayText(); } private string appName; //在成员声明时进行初始化,C++不允许这样使用. private int appCount = 30; }
using System; /// /// Summary description for Class1 /// public class Tools { //将构造函数设置为private,仅使用这个类的static函数 //不允许创建这个类的实例 private Tools() { // // TODO: Add constructor logic here // } //显示系统时间 public static void DisplayTime() { Console.WriteLine(System.DateTime.Now); } }
using System; /// /// Summary description for Class1 /// public class RefOut { public RefOut() { // // TODO: Add constructor logic here // } //使用ref输出参数 public void GetNumRef(ref int pNum) { //ref允许使用pNum,如下的方法正确 Console.WriteLine("pNum = {0}", pNum); pNum = nNum; } //使用out输出参数 public void GetNumOut(out int pNum) { //out不允许使用pNum,如下的使用方法出错!!!! //Console.WriteLine("pNum = {0}", pNum); pNum = nNum; } //测试参数输出 public static void test() { RefOut ro = new RefOut(); int nNum = 0; ro.GetNumRef(ref nNum); Console.WriteLine("nNum = {0}", nNum); nNum = 0; ro.GetNumOut(out nNum); Console.WriteLine("nNum = {0}", nNum); } private int nNum = 10; }
using System; /// /// Summary description for Class1 /// public class Property { public Property() { // // TODO: Add constructor logic here // } //创建一个属性,这个属性的获取方法将是原来值的2倍; //设置方法是传入参数的2倍 public int Num { //设置属性,value为关键字 set { nNum = 2 * value; } //获取属性 get { return nNum * 2; } } public void Print() { Console.WriteLine("nNum = {0}", nNum); } public static void test() { Property pt = new Property(); pt.Num = 20; Console.WriteLine("pt.Num = {0}", pt.Num); } private int nNum = 10; }
上一篇:C#教程之三(程序控制语句)
下一篇:C#教程之五(类的继承与多态)
登录 注册