您的位置:首页 > 编程语言 > C#

关于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
//}
}


下面是详细的调用细节
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: