关于C#静态方法与动态代码的核心代码学习
2015-05-22 16:02
411 查看
//静态方法与实例方法 class MyMethodClass { private static string staticString = "A static string"; private string nonStaticString = "Not a static string"; //静态成员 //不能修饰为virtual, abstract或override public static void StaticMethod() { //只能访问静态成员 //不能以this访问 Console.WriteLine(staticString); } //实例成员 public void NonStaticMethod() { //可以访问静态成员 Console.WriteLine(staticString); //也可以访问实例成员 //也可以以this关键字访问 Console.WriteLine(this.nonStaticString); } } class MyMethodClassDerived : MyMethodClass { //派生类定义及实现 } class Test_MyMethodClass { public static void Main() { MyMethodClass mmc = new MyMethodClass(); //实例方法只能由对象访问 mmc.NonStaticMethod(); //静态方法只能由类访问 MyMethodClass.StaticMethod(); //派生类可以访问静态方法, 但是不能覆写静态方法 MyMethodClassDerived.StaticMethod(); Console.ReadKey(); } }
静态方法是唯一的数据, 他不会根据不同的类而不同 代码例子如下
class Consumer { //定义实例成员: 每个人的消费 private double cost; public double Cost { get { return cost; } set { cost = value; } } //定义静态成员: 总计消费 注意这里是静态的 private static double costAll; public static double CostAll { get { return Consumer.costAll;} set { Consumer.costAll = value; } } public void AddCost() { costAll += cost; } public void ShowCost() { Console.WriteLine(CostAll); } } class Test_Consumer { //public static void Main() //{ // Consumer c1= new Consumer(); // c1.Cost = 5.25; // c1.AddCost(); // Consumer c2 = new Consumer(); // c2.Cost = 3.32; // c2.AddCost(); // c1.ShowCost(); // c2.ShowCost(); // Console.ReadKey(); // //结果都为8.75 //} }
下面是详细的调用细节
相关文章推荐
- C# 静态成员和方法的学习小结
- C# 静态成员和静态方法 学习笔记
- C#执行动态代码并回访静态代码中的元素
- C#学习之静态成员和非静态成员,构造函数,方法,方法参数,操作符重载,事件
- 生成静态文件的新闻系统核心代码(asp.net C#)
- C# 静态成员和方法的学习小结
- Java学习:静态方法,静态变量和静态代码块
- 关于C#中PictureBox加载动态GIF所出现的BUG以及解决方法
- 关于C++和C#中的静态方法的问题!
- 懒羊学习《深入浅出设计模式》C#代码手札之模板方法模式
- 关于C#静态构造方法的几点说明
- 关于C#中静态数据成员和静态方法的总结。
- C# 静态成员和方法的学习小结
- C# 静态成员和方法的学习小结
- C#基础学习之构造方法及静态方法联动 举例
- C#学习小记4 下面的例子是关于方法复载
- [转]C# 关于反射类[System.Reflection] 根据类名 动态调用 类方法
- 关于C#中静态数据成员和静态方法的总结
- 关于C#代码用F12转到定义时,总是显示从元数据的解决方法
- C#中关于泛型方法和泛型委托的示例代码