C#中静态方法和实例化方法的区别、使用
1、定义方法的格式
访问修饰符返回类型方法名(参数列表)
{
//方法的主体…
}
2、静态方法
在大多数时候,我们定义写一个方法,会把方法区分为实例化方法(普通方法)和静态方法。
用static修饰一个方法,就是静态方法。
publicstringInstanceMethod()//定义一个实例化方法(普通方法)
{
return"实例化方法(普通方法)";
}
publicstaticstringStacticMethod()//定义一个静态方法
{
return"静态方法";
}
3、静态方法和实例化方法的区别
(1)静态方法和实例方法,在加载时机上是一样的,在类型第一次被使用的时候加载,调用的速度基本上没有差别
(2)静态方法和实例化方法在本质上都是方法,所以在内存中,无论是静态方法还是实例化方法,在内存中都只保存一份
(3)如果一个方法,与他所在的类的事例对象无关,那么它就应该是静态的,而不应该把它写成实例方法。
从面向对象的角度来说,在抉择使用静态方法还是实例化方法,应该依据这个方法和实例化对象是否有逻辑关系
(4)静态方法只与类有关,它不依赖于对象的存在而存在;实例方法则在对象存在后才能使用。
普通方法、静态方法的使用
实例化方法:需要实例化对象,用对象点出来。
静态方法:直接用类名点出来,不需要实例化对象。
(1)如果两个方法都是实例化方法(普通方法),那么可以直接用方法名调用
publicvoidEat()
{
Console.WriteLine("吃饭!");
Sleep();//直接调用Sleep方法
}
publicvoidSleep()
{
Console.WriteLine("睡觉!");
}
(2)如果两个方法都是静态方法,那么可以直接用方法名调用
publicstaticvoidHello()
{
Console.WriteLine("Hello!");
}
publicstaticvoidMusic()
{
Hello();//直接调用Hello方法
}
(3)在静态方法中调用非静态方法,那么要先创建对象,再通过对象名.方法名()
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespaceConsoleApp4
{
classProgram
{
staticvoidMain(string[]args)
{
Programa=newProgram();//先创建一个对象
a.Hello();//通过对象名.方法名(),来调用方法
Console.ReadLine();
}
publicvoidHello()
{
Console.WriteLine("SayHello!");
}
}
}
(4)在非静态方法中,可以使用静态方法
publicvoidName()
{
Hello();//在非静态方法中,直接调用静态方法
}
publicstaticvoidHello()
{
Console.WriteLine("SayHello!");
}
以上就是C#中静态方法和实例化方法的区别、使用的详细内容,更多关于C#静态方法和实例化方法的资料请关注毛票票其它相关文章!