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

C#几个例子[静态构造函数,继承,虚方法]

2010-04-09 19:18 513 查看
1.静态构造函数的执行
  静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。

代码

using System;

public class A
{
public static int X;
static A()
{
X = B.Y + 1;
}
}

public class B
{
public static int Y = A.X + 1;
static B()
{
}
}

public class C
{
public static void Main()
{
Console.WriteLine( "X={0},Y={1}", A.X, B.Y );
}
}

2,1



静态构造函数具有以下特点:

静态构造函数既没有访问修饰符,也没有参数。

在创建第 一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化

无法直接调用静态构造函数。



执行shunxu1. 先static 变量初始化

2. 再static 构造函数

3. 实例化时先初始化非静态变量,后自动调用构造函数.










继承中new 和override 区别

public abstract class A
{
public A()
{
Console.WriteLine('A');
}

public virtual void Fun()
{
Console.WriteLine("A.Fun()");
}
}

public class B : A
{
public B()
{
Console.WriteLine('B');
}

public new void Fun()
{
Console.WriteLine("B.Fun()");
}

public static void Main()
{
A a = new B();
a.Fun();
}
}

结果是:

A

B

A.Fun()

因为B中是New, 如果是override重写这方法,则会



3




代码

public class A
{
public virtual void Fun1(int i)
{
Console.WriteLine(i);
}

public void Fun2(A a)
{
a.Fun1(1);
Fun1(5);
}
}

public class B : A
{
public override void Fun1(int i)
{
base.Fun1(i + 1);
}

public static void Main()
{
B b = new B();
A a = new A();
a.Fun2(b);
b.Fun2(a);
}
}

结果:

2

5

1

6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐