服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#中静态方法和实例化方法的区别、使用

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

2022-09-09 14:28一杯清酒邀明月 C#

这篇文章主要介绍了C#中静态方法和实例化方法的区别、使用,文中讲解的非常细致,对大家的学习有所帮助,感兴趣的朋友可以了解下

1、定义方法的格式

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

2、静态方法

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

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

?
1
2
3
4
5
6
7
8
public string InstanceMethod()//定义一个实例化方法(普通方法)
{
  return "实例化方法(普通方法)";
}
public static string StacticMethod()//定义一个静态方法
{
  return "静态方法";
}

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

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

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

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

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

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

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

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

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

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

?
1
2
3
4
5
6
7
8
9
public void Eat()
{
 Console.WriteLine("吃饭!");
 Sleep();//直接调用Sleep方法
}
public void Sleep()
{
 Console.WriteLine("睡觉!");
}

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

?
1
2
3
4
5
6
7
8
public static void Hello()
{
 Console.WriteLine("Hello!");
}
public static void Music()
{
 Hello();//直接调用Hello方法
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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)在非静态方法中,可以使用静态方法

?
1
2
3
4
5
6
7
8
public void Name()
{
 Hello();//在非静态方法中,直接调用静态方法
}
public static void Hello()
{
 Console.WriteLine("Say Hello!");
}

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

原文链接:https://www.cnblogs.com/ybqjymy/p/12502185.html

延伸 · 阅读

精彩推荐
  • C#C#实现影院售票系统

    C#实现影院售票系统

    这篇文章主要为大家详细介绍了C#实现影院售票系统,解析了售票系统的难点,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    可爱的黄油手3352022-03-09
  • C#C#实现获取mp3 Tag信息的方法

    C#实现获取mp3 Tag信息的方法

    这篇文章主要介绍了C#实现获取mp3 Tag信息的方法,涉及C#针对MP3文件属性的相关操作技巧,需要的朋友可以参考下...

    a77194852412042022-01-12
  • C#C#用递归算法实现:一列数的规则如下: 1、1、2、3、5、8、13、21、34,求第30位数是多少

    C#用递归算法实现:一列数的规则如下: 1、1、2、3、5、8、13、

    本文主要介绍三种方法,解决面试中常见的问题,求第30位数是多少的问题,希望能给大家一个参考。...

    Robin5862021-11-25
  • C#C# 字符串处理小工具

    C# 字符串处理小工具

    本文主要介绍C#字符串处理小工具,实现功能包括:转换为大写;转换为小写;反转字符串;匹配某字符串出现次数;正则匹配;base64加密;base64解密;R...

    Aaxuan5732021-12-28
  • C#C#停止线程的方法

    C#停止线程的方法

    这篇文章主要介绍了C#停止线程的方法,实例分析了C#正确停止线程的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    我心依旧12142021-10-20
  • C#C# Console利用mspaint打开图像并保存的方法

    C# Console利用mspaint打开图像并保存的方法

    这篇文章主要介绍了C# Console利用mspaint打开图像并保存的方法,涉及C#调用画图板操作图片的相关技巧,需要的朋友可以参考下...

    礼拜一11242021-11-08
  • C#C#使用系统方法发送异步邮件完整实例

    C#使用系统方法发送异步邮件完整实例

    这篇文章主要介绍了C#使用系统方法发送异步邮件实现方法,结合完整实例形式分析了C#异步调用与邮件发送的相关技巧,具有一定参考借鉴价值,需要的朋友可...

    HTL4642021-11-30
  • C#C#中 Json 序列化去掉null值的方法

    C#中 Json 序列化去掉null值的方法

    要将一个对象序列化,可是如果对象的属性为null的时候,我们想将属性为null的都去掉,怎么处理呢?其实方法很简单的,下面就跟随脚本之家小编一起学习C...

    huangenai4542022-01-21