Develop Dairy/C#

[Csharp] Stateful versus, stateless methods 상태 저장 및 상태 비저장 메서드 (2021. 01. 21)

평생코딩 2021. 1. 21. 00:10

상태 비저장 메서드(정적 메서드):

메모리에 저장된 값을 참조&변경하지 않고 작동할 수 있도록 구현

ex) Console.WriteLine() 메서드는 메모리에 저장된 값을 사용하지 않아, 애플리케이션 상태에 어떠한 영향도 주지 않고 해당 기능을 수행한 후 종료

 

상태 저장 메서드(인스턴스 메서드): 

이미 실행된 이전 코드 줄에서 메모리에 저장 된 값을 사용& 메모리의 값을 업데이트, 새 값 저장하여 애플리케이션 상태를 수정 

이러한 메서드를 인스턴스 메서드 라고도 함.

 - 클래스에 정의된 변수인 '필드'에서 해당 상태를 추적, 클래스의 새 인스턴스마다 상태를 저장할 고유한 필드 복사본이 있습니다.

 

상태 저장 메서드 사용법:

 - 단일 클래스에서 저장, 비저장 메서드 모두 지원할 수 있다. 그러나, 상태 저장 메서드를 호출해야 하는 경우, 메서드가 상태 저장 메서드에 액세스할 수 있도록 먼저 클래스 '인스턴스'를 만들어야 한다.

과정은 아래와 같다.

 

클래스 인스턴스 = 개체 

클래스의 새 인스턴스를 만들려면 new 연산자를 사용. 

Random 클래스의 새 인스턴스를 만들어 dice 라는 새 개체를 만드는 코드 줄

new 연산자가 수행하는 몇가지 중요한 작업:

 - 먼저 Random 클래스를 기준으로 새 개체를 저장하기에 충분한 크기의 컴퓨터 메모리 주소 요청

 - 새 개체를 만들어 메모리 주소에 저장

 - dice 변수에 저장할 수 있도록 메모리 주소를 반환.

 

ClassName.MethodName() 으로 접근

className = dice, 

MEthodName = next()

dice.Next(1,7);