• C# 静态方法和实例化方法


    C#中静态方法和普通方法的区别、使用

    1、定义方法的格式

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

    2、静态方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace ConsoleApp4
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             Program a = new Program();//先创建一个对象
    14             a.Hello();//通过 对象名.方法名(),来调用方法
    15             Console.ReadLine();
    16         }
    17         public void Hello()
    18         {
    19             Console.WriteLine("Say Hello!");
    20         }
    21     }
    22 }    

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

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

    End

  • 相关阅读:
    SQLSERVER查询某张表哪些字段包含某关键字
    SQLSERVER初始化机构path
    Golang的ORM框架之gorm
    Golang的web框架之Gin
    初识Go逆向
    GIT 常用命令
    mac上系统偏好里无法停止mysql
    js正则高级用法: 分组和断言
    Java强软弱虚四种引用的使用场景
    两数之和
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/12502185.html
Copyright © 2020-2023  润新知