我们在学C++时会学到静态方法,C#里面当然也有啦,我们现在来回忆一下!
非静态方法(实例方法)仅在第一个对象被实例化(通过new命令)时才装载到内存中,所以必须通过该对象实例才能访问到。静态方法(类方法)在一开始就被装载到内存,无需创建对象实例就可以访问。
看到这张图,相信大家可以猜到静态方法可以用来干什么了吧,,没错,最大的优点就是可以用来在多个对象实例之间共享,下面让我们来看一个例子:
火车站要学生报上姓名,然后打折,,我们知道每个人的姓名都是不一样的,然而所有人打折都是一样的,因此把打折的这个方法定义为静态方法
class Student
{
private string name;
public Student(string name)
{
this.name = name;
}
public void TellName()
{
Console.WriteLine("My name is: {0}", name);
}
public static double TicketDiscount(double price)
{
return price / 2;
}
}
class Program
{
public static void Main(string[] args)
{
Student stu1 = new Student("Tom");
Student stu2 = new Student("Jim");
stu1.TellName();
stu2.TellName();
Console.WriteLine("Discount: {0}",
Student.TicketDiscount(100));
}
}
运行结果:
提示:学者如果对上面的堆栈不懂的话,可以看本人的"C#里面的值类型和引用类型的区别",里面有详细介绍!!!