您的位置:首页 > 其它

总结

2015-09-21 22:58 281 查看
C#中的引用传递、值传递。

1、传递值类型参数

  值类型变量直接包含其数据,这与引用类型变量不同,后者包含对其数据的引用。因此,向方法传递值类型变量意味着向方法传递变量的一个副本。方法内发生的对参数的更改对该变量中存储的原始数据无任何影响。如果希望所调用的方法更改参数的值,必须使用 ref 或 out 关键字通过引用传递该参数。

2、传递引用类型参数

  引用类型的变量不直接包含其数据;它包含的是对其数据的引用。当通过值传递引用类型的参数时,有可能更改引用所指向的数据,如某类成员的值。但是无法更改引用本身的值;也就是说,不能使用相同的引用为新类分配内存并使之在块外保持。若要这样做,应使用 ref 或 out 关键字传递参数。

作用:子类可以对父类中的虚方法进行重写,虚方法是多态特性的一种体现

3虚方法

C#中的虚方法使用virtual关键字定义

public virtual void eat();


override关键字作用是对父类的virtual方法进行重写

public override void eat();


代码举例:

using System;
using System.Collections;

public class Animal
{
public Animal() { }
public virtual void eat()
{

}
}

public class dog:Animal
{
public override void eat()
{
//如果父类的虚方法中有我们需要的数据,可以在子类的覆盖方法中调用它:
//base.eat();
Console.WriteLine("狗吃骨头");
}
}

public class cat:Animal
{
public override void eat()
{
Console.WriteLine("猫吃鱼");
}
}

public class panda:Animal
{
public override void eat()
{
Console.WriteLine("熊猫吃竹子");
}
}

public class MainFun
{
static void Main()
{
Animal[] anim = new Animal[3];
anim[0] = new dog();
anim[1] = new cat();
anim[2] = new panda();
anim[0].eat();
anim[1].eat();
anim[2].eat();
}
}


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