Microsoft MVP성태의 닷넷 이야기
[왕초보] (4) [링크 복사], [링크+제목 복사],
조회: 15259
글쓴 사람
정유경
홈페이지
첨부 파일
 

안녕하세요

지난번에 튜플에 대해서 감사하게 답변 읽고 잘 해결했습니다. 도움을 주셔서 대단히 감사합니다.


이번에 궁금한것은요 'static' 에 관한거에요

열심히 유투브 동영상 같은거 읽어보니까 static 이란 하나의 어떤 공유 변수로, 클래스 내에서 여러 함수를 돌고 돌면서 계속 그 모양이 변하고

다른 클래스에서도 불러올 수 있는 변수라고 했는데

제가 제대로 이해하고 있는게 맞는건지 잘 모르겠어요.. 심지어 몇몇 영상은 각 정보들의 사실관계가 충돌해서 어느사람이 맞는 말을 하고 있는지 조차 헷갈려요.


static 은 무엇이며 언제 써야하고 static 을 선언한 변수와 그렇지 않은 변수의 차이점을 알려주세요

꾸벅

-- 잠깐만.

제가 위 질문을 다시 읽어보니까 너무 질문이 난해하네요 ; 죄송합니다.

예를 한 번 들어볼게요.

예를 들어서 아래와 같은 함수가 있다고 해요.


함수(input)
 {input++;
     return output;}


그러니까 input 을 매개변수로 받아서 1을 더한후 그 값을 배출시키는 함수인거죠.

문제는 for 문을 써서 이 함수를 서너번 돌려보니까

input1, input2, input3, input4 가 들어가면

제 생각엔: input1에 1을 더한 값, input2에 1을 더한값, input3 에 1을 더한값, input4에 1을 더한값 이 나와야하는데,
실제로 나오는건: input1 에 1을 더한값, [input1 에 1을 더한값]에다가 1을 더한값, [[input1에 1을 더한값]에다가1을 더한값]에다가 1을 더한값, [[[input1에 1을 더한값]에다가1을 더한값]에다가 1을 더한값]에다가 1을 더한값이 나오네요.

이걸 static 을 썼다가 지웠다가 별별 시도를 다하는데도 제 생각대로 작동하게 만들 수 있는 법을 모르겠어요 ㅜㅜ










[최초 등록일: ]
[최종 수정일: 12/10/2020]


비밀번호

댓글 작성자
 



2020-12-10 01시18분
죄송하지만, 제가 일일이 문법적인 부분을 모두 설명할 수는 없습니다. 해당 설명들은 이미 어떤 책에서나 잘 설명하고 있을 것입니다. (참고로, 만약 제 책을 가지고 계시다면 "4.1.5.1 정적 필드"를 참조하시면 됩니다.)

간단하게 말하면, static 유형은 개체를 인스턴스화하지 않아도(즉, new를 하지 않아도) 접근할 수 있는 멤버입니다.

그리고 예를 든 코드의 경우에는, (return output;이 아니고 return input 같은데) '실제로 나오는 건...'이라고 언급한 것은 어떻게 코드를 만들었는지 모르겠지만, 1을 더한 후 그 값을 배출하는 것이 맞습니다.

(질문하실 때, 그냥 번호만 붙이지 마시고 질문을 잘 설명하는 제목으로 적어주세요.)
정성태

... 16  17  18  19  20  21  22  23  24  25  26  27  28  29  [30]  ...
NoWriterDateCnt.TitleFile(s)
5164레드5/21/201918267실행 과정과 실행파일 디버그 시 Icon변경 질문드립니다. [5]
5163이대희5/20/201915135시작하세요 C# 7.3 프로그래밍 책 도착했습니다. [1]
5162채홍윤5/14/201919604Mono Develop window 설치 [6]
5161정대영5/13/201916077VS 2013에서 C#6.0(.netFramwork 4.6.1) $ 디버깅 오류 [1]
5160초보개발자5/13/201918185wcf 관련 국내 서적 살만한 책이 있나요? [2]
5159sdh25/9/201916337VS 2010 버전에서 생성한 DLL을 VS 2017버전에서 실행 시 에러 [2]
5158sdh5/8/201916378Visual studio 2010 버전에서 생성한 Project를 Visual studio 2017버전에서 실행에러 [1]
5157김경훈5/8/201919676Task 만들때 넘겨주는 CancellationToken은 어디서 사용 되는 건가요? [4]
5156rysoo5/8/201918695yield return의 리턴 타입 질문 드립니다. [4]
5155세퉁5/7/201921030관리자 권한으로 실행 시 알림창(?) 없이 바로 실행 시킬 수 있는 방법이 있을까요?? [2]파일 다운로드1
5154Soul...5/4/201916046NamedPipe 질문드립니다. [2]
5153개태5/4/201917242WCF RESTful Service에서 enum을 parameter로 쓰는방법 [2]
5152세퉁5/3/201918334인터넷 시간을 불러와 pc에 적용 시키고 싶습니다. [3]파일 다운로드1
5151이대희5/3/201915026C# 7.3으로 개정판 출간 계획이 있으신가요? [1]
5150김이현5/2/201918432C# 딕셔너리 생성에 대해 질문드립니다. [1]
5149민성5/1/201916111ftp 이미지 업로드중 [1]
5148wpf질문4/30/201916295특정 사이트를 wpf에서 popup을 항상 허용하게 할려면 어떻게 해야할까요? [5]
5147민성4/30/201914894wpf에서 작업관리자를 띠울려면 어떻게 해야 하나요? [1]
5146불파겐4/25/201914912하나의 필드를 여러 스레드에서 읽어갈 때 스레드 동기화를 하지 않으면 문제가 생길까요? [2]
5145e구름4/17/201918764Properties.Setting.Default값에 대해 질문드립니다. [2]
5144성태님 ...4/17/201915839질문하시기 전에 10000 페이지 오류 납니다. [1]
5143헌이4/16/201916804윈도우 작업표시줄에 프로그램 띄우기 [2]파일 다운로드1
5142cab2...4/9/201923131C#으로 만든 DLL 배포하기 [10]
5141하늘사랑4/5/201917742Axinterop 래퍼에 관해서 질문드립니다. [7]
5140게스트4/1/201916324안녕하세요. 초보 개발자입니다. SD리더기에서 SD카드를 꽂으면 발생하는 이벤트 문의 [2]
5139김이현3/28/201919698C#에서 CRON 같은 스케줄러를 사용하려면 어떻게 해야 하나요? [3]
... 16  17  18  19  20  21  22  23  24  25  26  27  28  29  [30]  ...