Intern Day86 - C#static关键字的使用(C++同理)
语法
-
静态方法关键字:
static
-
静态方法如何调用/使用方法:直接
类名.方法名( )
,不需要new一个对象/实例化,通过类名直接调即可
注意
在C++中,this关键字不能用于static方法中。(概念冲突了)
原因:
static:修饰的变量或者方法是属于类,一般通过类名调用。static修饰的方法,在程序编译时就已被加载到内存中,而不是创建实例的时候才产生。static修饰的方法是类方法,类方法是不需要当前类实例化(即new一个对象)就能够访问的方法。
this:是当前类自身的new出来的一个实例。使用this可以调用方法所在对象自身的变量/方法。
在JAVA中,当一个对象创建后,Java虚拟机JVM就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。
简单来说:
static不需要通过new,它直接就可以调用方法;但是this的话是实例化后才能调用。
C#代码示例
using System;
using System.Transactions;
class Test
{
public static void Add(double a,double b)
{
double c = a + b;
Console.WriteLine("x+y=" + c);
}
public void Sub(double a, double b)
{
double c = a - b;
Console.WriteLine("x-y=" + c);
}
}
class Program
{
public static void Main(string[] args) // static void Main(string[] args)
{
Test.Add(2,3); // 调用静态方法
Test x = new Test(); // wrong:Subx = new Sub(); // 调用非静态/一般方法
x.Sub(2, 3);
}
}
输出:
x+y=5
x-y=-1