溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

淺談C#中靜態(tài)方法和實(shí)例化方法

發(fā)布時(shí)間:2020-07-17 11:12:20 來(lái)源:億速云 閱讀:272 作者:小豬 欄目:編程語(yǔ)言

小編這次要給大家分享的是淺談C#中靜態(tài)方法和實(shí)例化方法,文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

1、定義方法的格式

 訪問(wèn)修飾符 返回類(lèi)型 方法名 (參數(shù)列表)
 {
 // 方法的主體…
 }

2、靜態(tài)方法

在大多數(shù)時(shí)候,我們定義寫(xiě)一個(gè)方法,會(huì)把方法區(qū)分為實(shí)例化方法(普通方法)和靜態(tài)方法。

用static修飾一個(gè)方法,就是靜態(tài)方法。

public string InstanceMethod()//定義一個(gè)實(shí)例化方法(普通方法)
{
  return "實(shí)例化方法(普通方法)";
}
public static string StacticMethod()//定義一個(gè)靜態(tài)方法
{
  return "靜態(tài)方法";
}

3、靜態(tài)方法和實(shí)例化方法的區(qū)別

(1)靜態(tài)方法和實(shí)例方法,在加載時(shí)機(jī)上是一樣的,在類(lèi)型第一次被使用的時(shí)候加載,調(diào)用的速度基本上沒(méi)有差別

(2)靜態(tài)方法和實(shí)例化方法在本質(zhì)上都是方法,所以在內(nèi)存中,無(wú)論是靜態(tài)方法還是實(shí)例化方法,在內(nèi)存中都只保存一份

(3)如果一個(gè)方法,與他所在的類(lèi)的事例對(duì)象無(wú)關(guān),那么它就應(yīng)該是靜態(tài)的,而不應(yīng)該把它寫(xiě)成實(shí)例方法。

    從面向?qū)ο蟮慕嵌葋?lái)說(shuō),在抉擇使用靜態(tài)方法還是實(shí)例化方法,應(yīng)該依據(jù)這個(gè)方法和實(shí)例化對(duì)象是否有邏輯關(guān)系

(4)靜態(tài)方法只與類(lèi)有關(guān),它不依賴(lài)于對(duì)象的存在而存在;實(shí)例方法則在對(duì)象存在后才能使用。

普通方法、靜態(tài)方法的使用

實(shí)例化方法:需要實(shí)例化對(duì)象,用對(duì)象點(diǎn)出來(lái)。

靜態(tài)方法:直接用類(lèi)名點(diǎn)出來(lái),不需要實(shí)例化對(duì)象。

(1)如果兩個(gè)方法都是實(shí)例化方法(普通方法),那么可以直接用方法名調(diào)用

public void Eat()
{
 Console.WriteLine("吃飯!");
 Sleep();//直接調(diào)用Sleep方法
}
public void Sleep()
{
 Console.WriteLine("睡覺(jué)!");
}

(2)如果兩個(gè)方法都是靜態(tài)方法, 那么可以直接用方法名調(diào)用

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

(3)在靜態(tài)方法中調(diào)用非靜態(tài)方法,那么要先創(chuàng)建對(duì)象,再通過(guò)對(duì)象名.方法名()

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();//先創(chuàng)建一個(gè)對(duì)象
  a.Hello();//通過(guò) 對(duì)象名.方法名(),來(lái)調(diào)用方法
  Console.ReadLine();
 }
 public void Hello()
 {
  Console.WriteLine("Say Hello!");
 }
 }
}

(4)在非靜態(tài)方法中,可以使用靜態(tài)方法

public void Name()
{
 Hello();//在非靜態(tài)方法中,直接調(diào)用靜態(tài)方法
}
public static void Hello()
{
 Console.WriteLine("Say Hello!");
}

看完這篇關(guān)于淺談C#中靜態(tài)方法和實(shí)例化方法的文章,如果覺(jué)得文章內(nèi)容寫(xiě)得不錯(cuò)的話,可以把它分享出去給更多人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI