C#中静态方法和实例化方法的区别、使用

所属分类: 软件编程 / C#教程 阅读数: 52
收藏 0 赞 0 分享

1、定义方法的格式

 访问修饰符 返回类型 方法名 (参数列表)
 {
 // 方法的主体…
 }

2、静态方法

在大多数时候,我们定义写一个方法,会把方法区分为实例化方法(普通方法)和静态方法。

用static修饰一个方法,就是静态方法。

public string InstanceMethod()//定义一个实例化方法(普通方法)
{
  return "实例化方法(普通方法)";
}
public static string StacticMethod()//定义一个静态方法
{
  return "静态方法";
}

3、静态方法和实例化方法的区别

(1)静态方法和实例方法,在加载时机上是一样的,在类型第一次被使用的时候加载,调用的速度基本上没有差别

(2)静态方法和实例化方法在本质上都是方法,所以在内存中,无论是静态方法还是实例化方法,在内存中都只保存一份

(3)如果一个方法,与他所在的类的事例对象无关,那么它就应该是静态的,而不应该把它写成实例方法。

    从面向对象的角度来说,在抉择使用静态方法还是实例化方法,应该依据这个方法和实例化对象是否有逻辑关系

(4)静态方法只与类有关,它不依赖于对象的存在而存在;实例方法则在对象存在后才能使用。

普通方法、静态方法的使用

实例化方法:需要实例化对象,用对象点出来。

静态方法:直接用类名点出来,不需要实例化对象。

(1)如果两个方法都是实例化方法(普通方法),那么可以直接用方法名调用

public void Eat()
{
 Console.WriteLine("吃饭!");
 Sleep();//直接调用Sleep方法
}
public void Sleep()
{
 Console.WriteLine("睡觉!");
}

(2)如果两个方法都是静态方法, 那么可以直接用方法名调用

public static void Hello()
{
 Console.WriteLine("Hello!");
}
public static void Music()
{
 Hello();//直接调用Hello方法
}

(3)在静态方法中调用非静态方法,那么要先创建对象,再通过对象名.方法名()

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp4
{
 class Program
 {
 static void Main(string[] args)
 {
  Program a = new Program();//先创建一个对象
  a.Hello();//通过 对象名.方法名(),来调用方法
  Console.ReadLine();
 }
 public void Hello()
 {
  Console.WriteLine("Say Hello!");
 }
 }
}

(4)在非静态方法中,可以使用静态方法

public void Name()
{
 Hello();//在非静态方法中,直接调用静态方法
}
public static void Hello()
{
 Console.WriteLine("Say Hello!");
}

以上就是C#中静态方法和实例化方法的区别、使用的详细内容,更多关于C# 静态方法和实例化方法的资料请关注脚本之家其它相关文章!

更多精彩内容其他人还在看

C#基础:Dispose()、Close()、Finalize()的区别详解

本篇文章是对c#中的Dispose()、Close()、Finalize()的区别进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

C#字符串常见操作总结详解

本篇文章是对C#中字符串的常见操作进行了详细的总结介绍,需要的朋友参考下
收藏 0 赞 0 分享

c# 引用类型与值类型的区别详解

本篇文章是对c#中引用类型与值类型的区别进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

c# 实现IComparable、IComparer接口、Comparer类的详解

本篇文章是对c#中实现IComparable、IComparer接口、Comparer类进行了详细的分析详解,需要的朋友参考下
收藏 0 赞 0 分享

深入c# 类和结构的区别总结详解

本篇文章是对c#中类和结构的区别进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

解析C#自定义控件的制作与使用实例的详解

本篇文章是对C#中自定义控件的制作与使用实例进行了详细的分析介绍,需要的朋友参考下
收藏 0 赞 0 分享

C#实现路由器断开连接,更改公网ip的实例代码

C#实现路由器断开连接,更改公网ip的实例代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#中使用IrisSkin2.dll美化WinForm程序界面的方法

这篇文章主要介绍了c#中使用IrisSkin2.dll美化WinForm程序界面的实现方法,需要的朋友可以参考下
收藏 0 赞 0 分享

.net C# 实现任意List的笛卡尔乘积算法代码

笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。
收藏 0 赞 0 分享

C#中实现任意List的全组合算法代码

这篇文章主要是介绍了.net C# 实现任意List的全组合算法实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多