관리 메뉴

Algo μ“°μž

03. static ν•„λ“œμ™€ static λ©”μ†Œλ“œ λ³Έλ¬Έ

πŸ’» Programming Language/C#

03. static ν•„λ“œμ™€ static λ©”μ†Œλ“œ

S.Honey 2022. 4. 6. 09:13
  • static(정적) λ©”μ†Œλ“œμ™€ 정적 ν•„λ“œ
  • ν•œ ν”„λ‘œκ·Έλž¨μ•ˆμ— ν΄λž˜μŠ€λŠ” ν•˜λ‚˜λ§Œ μ‘΄μž¬ν•˜μ§€λ§Œ μΈμŠ€ν„΄μŠ€λŠ” μ—¬λŸ¬κ°œκ°€ 쑴재 ν•  수 μžˆλ‹€.
  • ν•œ ν”„λ‘œκ·Έλž¨μ•ˆμ— λ˜‘κ°™μ€ ν΄λž˜μŠ€λŠ” λ‘κ°œκ°€ μ‘΄μž¬ν•  수 μ—†λ‹€.
  • static ν•„λ“œλ‚˜ static λ©”μ†Œλ“œλŠ” ν΄λž˜μŠ€μ— μ†Œμ†λœ κ²ƒμ΄λ―€λ‘œ ν”„λ‘œκ·Έλž¨μ•ˆμ— μœ μΌν•˜κ²Œ μ‘΄μž¬ν•œλ‹€.
  • μΈμŠ€ν„΄μŠ€μ˜ ν•„λ“œλ‚˜ λ©”μ†Œλ“œλŠ” μΈμŠ€ν„΄μŠ€λ₯Ό 톡해 μ ‘κ·Όν•˜λ©΄ 되고, static ν•„λ“œμ™€ λ©”μ†Œλ“œμ˜ κ²½μš°μ—λŠ” ν•΄λ‹Ή 클래슀의 이름을 톡해 μ ‘κ·Όν•˜λ©΄ λœλ‹€.
using System;
using System.Threading;

class Global
{
    public static int Count = 0;
    public static void ResetCount()
    {
        Count = 0;
    }
}

class A
{
    public A()
    {
        Global.Count++;
    }
}

class B
{
    public B()
    {
        Global.Count++;
    }
}


class MainApp
{
    static void Main(string[] args)
    {
        Console.WriteLine($"Global.Count : {Global.Count}");        

        new A();
        new A();
        new B();
        new B();

        Console.WriteLine($"Global.Count : {Global.Count}");

        Global.ResetCount();

        Console.WriteLine($"-----Reset-----");
        Console.WriteLine($"Global.Count : {Global.Count}");        
    }
}
Output 

Global.Count : 0
Global.Count : 4
-----Reset-----
Global.Count : 0