이번 강의가 가장 헷갈렸는데, 그 이유는 바로 구조체와 클래스를 서로 변경하려 할 때 중괄호 마무리(안밖)을 제대로 따라하지 못했군요. 다시 없던 걸로 하고 재작성 해보니 무난하게 따라할 수 있었습니다. 이것만 3일 날렸네요. 어쨌든 따라할 수 있어서 다행입니다. 앞으로가 더 걱정이긴 합니다만 아무튼 잘 봤습니다. 감사합니다.
클래스 넘어갈때 쯤 부터가 어려워지기 시작합니다. 클래스단위로 왔다갔다 해야하는 부분이 많아지기 때문이죠. 하지만 이 부분을 잘 이해하시면 개발할수있는 범위가 매우 넓어지게 됩니다. 아마 이때 근처로 해서 복기하는 내용도 한번만들었던것 같습니다. 찬찬히 따라해보시면 이후로도 반복해서 계속 할꺼라서 충분히 익숙해지실수 있다고 생각합니다. 화이팅!!!!
public int CardSun(int iSum, int iMoon, int iStar) { return iSun + iMoon + iStar; } 값들을 더해서 반환이라고 되있는데 이 부분 설명좀 해주실수 있을까요?? 코딩 입문자인데 return은iSun+iMoon+iStar더한값이 나오는거로 이해했는데 위에 int CardSun은 ?? 뭔지 모르겠어요
순서대로 위에서 부터 보셔야 하는데 public라는건 접근 할수 있는 권한이라고 보시면 되고 사방에서 다 접근 가능한 함수다 라고 보시면 됩니다. 그뒤에 int라고 적혀있는 부분은 아래쪽에 return이라고 되어 있는 부분에 대한 이야기 이며, 반환되는 형태라고 보시면 됩니다. (숫자 형태로 반환 해야 한다라는 의미이고) CardSum이라는 부분은 함수 명이고 그 옆에 () 안에 있는 부분은 이 함수를 호출 할 때에는 이 안에 있는 내용들을 채워서 호출해야 한다는 의미 입니다. 이 부분들이 아직 이해가 되지 않으시면 앞쪽으로 조금 돌아가셔서 함수들을 다시 확인 하시면서 함수들의 내용들을 하나씩 빼서 테스트 해보시면서 익숙해지시는게 좋을듯 합니다. 함수가 익숙해지지 않은 상태에서 class를 들어가게 되면 훨씬 많은 부분을 왔다 갔다 해야 하기 때문에 더 혼란이 올 수있다고 생각 합니다. 이 부분들은 대부분의 언어들에 대해 기본이 되는 부분이라고 생각하기에 천천히 가더라도 완전히 이해하고 넘어가시는게 좋을것 같습니다. 화이팅 하십시오!!!
@@choeleeeji2330 ^^ 한번에 다 이해가 되면 좋겠지만 아무리 쉽게 풀려고 해도 아주 쉬운내용만은 아니기 때문에 제 코드들을 보면 사용한 부분은 계속 반복해서 나오게 되는데 막힐경우 계속 물고 있으면 지루해 질 수 있기 때문에 기본 강의는 끝까지 다 달리고 다시 들어오면서 보면 더 좋지 않을까 생각 합니다. 분명히 진행 한뒤에 다시 볼때에 아~ 하는 느낌이 있을것이라고 생각 합니다. ㅎㅎ 화이팅 하십시오!!! ^^
@@doridori5591 저거 오타였던거죠?? public int CardSum(int iSun, int iMoon, int iStar ) 이렇게 쓰시려고 했던거 같아서요. 소스 올려주신건 public int cardsun(int isum, int iMoon, int iStar) 이렇게 되있거든요
@@choeleeeji2330 네 맞습니다. Sum 값을 표시 하려고 했던것 같습니다. 오타난거네요. ㅎㅎ 하나 씩 다 만들어서 쓰다 보니 오타가 많기는 한듯 합니다. ㅎ 자동완성 기능이 있다보니 한번 오타나면 오타난걸로 계속 쓰는것도 문제기는한데 그래서 전체 바꾸기도 있는거 같고 . . .ㅎㅎ 오타 맞습니다.!!!!!
안녕하세요 항상 감사드립니다. 실습 중에 문제가 생겨 질문드려요 ㅠㅠ 20:05 분쯤에 if문작성부분에서 if(rPlayer1.Checked) { _stPlayer1.iCount++; iCardSum = _stPlayer1.CardSum(_stPlayer1.isun, _stPlayer1.imoon, _stPlayer1.istar); _stPlayer1.iCardSum = iCardSum; strResult = _stPlayer1.ResultText(); lboxResult1.Items.Add(strResult); } 이 분에서 Result.Text부분 오류가 뜨거든여 오류 코드는 CS7036 Form1.structPlayer.ResultText(int)'에서 필요한 정식 매개 변수 'iCardSum'에 해당하는 제공된 인수가 없습니다. 혹시 이 정보만으로 무엇이 문제인지 좀 알려주실수 있을까요 ?
클래스와 구조체의 차이가 이해안되신다면 그만큼 좋은겁니다. 서로 다른 점이 거의 없다는거니까 아무거나 편하게 사용하세요. 객체지향 개념을 깊숙히 파보고 디자인 패턴 같은것들 구현하기 이전엔 몰라도 될거라 생각합니다. 솔직히..제 추천은 그냥 클래스 쓰라고 말씀드리고 싶습니다. 강의 잘 보고 있습니다!
비슷한 의견 입니다. 이 강의를 올리는 시점에 이것저것 찾아 보기도 했었고 고민도 했었는데 c나 c++ 소스를 마이글레이션 할 때 장점 정도? 생각 되기도 합니다. 저는 어쨌는 직업을 위해서 배우는 거라고 생각하는 편이라 회사 쪽에서 생각하는 편인데 개발회사의 경우 대부분은 개발 가이드가 있으니 해당 내용에 특정 상황에서 구조체와 클래스에 대한 구분이 있다면, 그에 따라 움직이는게 맞지 않나 라는 생각을 많이 하는 편 입니다.
제가 만든내용들이 예제 위주로 하다보니 시간은 많이 들어가지만 반복되는 부분들도 많고 계속 만들어 볼수 있기 때문에 따라가시면 충분히 혼자 만드실 수 있습니다. 제 영상을 보고 실무에서 사용하고 있다는 댓글을 볼때마다 매우 감사드리는데 댓글을 하나 더 볼 수 있었으면 좋겠네요. ㅎㅎ
강의 감사히 듣고있습니다. 클래스는 new 선언해주지않으면 null로 에러가 난다는점을 잘 배웠습니다. 실례지만 관련 답변을 쉽게 찾지 못해서 질문하나 올려봅니다. 값형은 스텍으로 올라가고 참조형은 힙으로 올라간다고 피상적으로 배웠는데요, 힙영역은 null값을 가질수 없다는 이야기인가요? 그리고 또한 값영역은 struct 구조 그대로를 가지고있는데도 오류가 나지 않는것으로 보아 어떤 형태이든 받아놓을 수 있는건지.. 관련자료를 무엇이라 검색하면 나올까요?
흠 말씀하신 부분이 메모리의 특정 영역을 사용한다는 부분인데 일단 지정해서 사용 하는 부분이 아니라 메모리의 특정 공간을 나누어서 사용한다 정도만 생각하시고 넘어가시면 좋을듯 하고 Data Type에 따라서 Null을 가지거나 가지지 못한다고 보시면 될듯 합니다. (null을 가질 수 있도록 명시해 줄수도 있기는 하지만 잘 사용하지 않습니다.) DataType 부분을 자세히 찾아보시면 좋을 듯 하며, Struct의 경우 class와 함께 비교해 보시면 조금더 좋을듯 합니다. (비슷한 내용을 한번 올렸던것으로 기억하기는 합니다. ^^;;)
제가 출장중이었어서 어떤내용인지 확인이 늦어 지금답변드립니다. 해,달,별 게임의 경우 긴장감을 주기위해서 해,달,별 각각의 값 중에 마지막값들을 합산해서 총합을 구하게 구성하였습니다. 에메하게 높은 숫자의 카드가 있을경우에 자신의 차례에서 어떤카드를 새로 뽑을지 고민하도록 구성하였습니다. ㅎ 게임에 대한 설명이 조금 부족했던것 같습니다. ㅎ 말씀감사드립니다.
구조체를 사용하는 법에 대해서는 이해가 됐지만, 의문점은 그렇습니다. 구조체와 클래스는 분명 그 용도가 다르니까, 프로그램 개발자도 별도의 구분을 했을 것이라고 보는데. 사실상 이 영상만 봐서는 기능적으로, 용도적으로 구분이 안되어서요. 정확히 어떤 목적이나 용도일때는 구조체를 쓰고, 어떨 때는 클래스를 쓰는지 알 수 있는지요?
아..고비 오네요.. 202410.11 그냥 듣고 따라 해봅니다. Just Do it
클래스 나오는 부분부터 약간 마블쪽 세계관이 확장 되는 느낌으로 코드의 범위가 확 넓어지기 때문에 조금 혼란스러 울 수 있는데 코드의 이동이 넓어 질 뿐이고 어려운 내용은 아니기 때문에 찬찬히 ㅎ따라 가시면 금방 적응 하시리라고 생각 합니다. ^^ 화이팅 하십시오!!
쉽게 설명 해 주셔서 지금까지 잘 따라 오고 있습니다~~
감사합니다. ^^ 정주행 해주시는 분들이 댓글남겨주시는면 그거보면서 저도 힘을 많이 받아가고 있습니다. ^^
c# 강의중에 제일 듣기 좋은 것 같아요! 열심히 공부중입니다 감사합니다!
감사합니다.!! 기분 좋은 말에 행복해지네요. 화이팅 하십시오~! ㅎㅎ
2024-07-16 수강완료
화이팅 하십시오!!
쉽고 재밌게 설명해주셔서 영상들 잘보고 있습니다 도리돌이님 최고에요
감사합니다. !! 얼마전에 어디 기사를 봤는데 어려운 단어를 섞어서 못알아듣게 설명하는건 사기꾼이라고 =0=;;;; 물론 어려운 내용들도 있겠지만 최대한 제가 아는 부분들을 쉽게 적어 놓으려고 노력하고 있습니다.!! ^^
이번 강의가 가장 헷갈렸는데,
그 이유는 바로 구조체와 클래스를 서로 변경하려 할 때 중괄호 마무리(안밖)을 제대로 따라하지 못했군요.
다시 없던 걸로 하고 재작성 해보니 무난하게 따라할 수 있었습니다.
이것만 3일 날렸네요. 어쨌든 따라할 수 있어서 다행입니다.
앞으로가 더 걱정이긴 합니다만 아무튼 잘 봤습니다. 감사합니다.
클래스 넘어갈때 쯤 부터가 어려워지기 시작합니다. 클래스단위로 왔다갔다 해야하는 부분이 많아지기 때문이죠. 하지만 이 부분을 잘 이해하시면 개발할수있는 범위가 매우 넓어지게 됩니다. 아마 이때 근처로 해서 복기하는 내용도 한번만들었던것 같습니다. 찬찬히 따라해보시면 이후로도 반복해서 계속 할꺼라서 충분히 익숙해지실수 있다고 생각합니다. 화이팅!!!!
좋은 강의 감사합니다.
감사합니다. ㅎㅎ 화이팅 이십니다!!!
public int CardSun(int iSum, int iMoon, int iStar)
{
return iSun + iMoon + iStar;
}
값들을 더해서 반환이라고 되있는데 이 부분 설명좀 해주실수 있을까요??
코딩 입문자인데 return은iSun+iMoon+iStar더한값이 나오는거로 이해했는데 위에 int CardSun은 ?? 뭔지 모르겠어요
순서대로 위에서 부터 보셔야 하는데 public라는건 접근 할수 있는 권한이라고 보시면 되고 사방에서 다 접근 가능한 함수다 라고 보시면 됩니다.
그뒤에 int라고 적혀있는 부분은 아래쪽에 return이라고 되어 있는 부분에 대한 이야기 이며, 반환되는 형태라고 보시면 됩니다. (숫자 형태로 반환 해야 한다라는 의미이고) CardSum이라는 부분은 함수 명이고 그 옆에 () 안에 있는 부분은 이 함수를 호출 할 때에는 이 안에 있는 내용들을 채워서 호출해야 한다는 의미 입니다. 이 부분들이 아직 이해가 되지 않으시면 앞쪽으로 조금 돌아가셔서 함수들을 다시 확인 하시면서 함수들의 내용들을 하나씩 빼서 테스트 해보시면서 익숙해지시는게 좋을듯 합니다. 함수가 익숙해지지 않은 상태에서 class를 들어가게 되면 훨씬 많은 부분을 왔다 갔다 해야 하기 때문에 더 혼란이 올 수있다고 생각 합니다. 이 부분들은 대부분의 언어들에 대해 기본이 되는 부분이라고 생각하기에 천천히 가더라도 완전히 이해하고 넘어가시는게 좋을것 같습니다. 화이팅 하십시오!!!
@@doridori5591 감사합니다 천천히 제대로 이해하는게 중요한거 같아요. 진도만 채우면서 듣는 느낌이여서 첫강부터 다시 정주행하고 있는데 이제야 좀 뭔가 보이는거 같아요
@@choeleeeji2330 ^^ 한번에 다 이해가 되면 좋겠지만 아무리 쉽게 풀려고 해도 아주 쉬운내용만은 아니기 때문에 제 코드들을 보면 사용한 부분은 계속 반복해서 나오게 되는데 막힐경우 계속 물고 있으면 지루해 질 수 있기 때문에 기본 강의는 끝까지 다 달리고 다시 들어오면서 보면 더 좋지 않을까 생각 합니다. 분명히 진행 한뒤에 다시 볼때에 아~ 하는 느낌이 있을것이라고 생각 합니다. ㅎㅎ 화이팅 하십시오!!! ^^
@@doridori5591 저거 오타였던거죠?? public int CardSum(int iSun, int iMoon, int iStar ) 이렇게 쓰시려고 했던거 같아서요. 소스 올려주신건 public int cardsun(int isum, int iMoon, int iStar) 이렇게 되있거든요
@@choeleeeji2330 네 맞습니다. Sum 값을 표시 하려고 했던것 같습니다. 오타난거네요. ㅎㅎ 하나 씩 다 만들어서 쓰다 보니 오타가 많기는 한듯 합니다. ㅎ 자동완성 기능이 있다보니 한번 오타나면 오타난걸로 계속 쓰는것도 문제기는한데 그래서 전체 바꾸기도 있는거 같고 . . .ㅎㅎ 오타 맞습니다.!!!!!
안녕하세요 항상 감사드립니다. 실습 중에 문제가 생겨 질문드려요 ㅠㅠ
20:05 분쯤에 if문작성부분에서
if(rPlayer1.Checked)
{
_stPlayer1.iCount++;
iCardSum = _stPlayer1.CardSum(_stPlayer1.isun, _stPlayer1.imoon, _stPlayer1.istar);
_stPlayer1.iCardSum = iCardSum;
strResult = _stPlayer1.ResultText();
lboxResult1.Items.Add(strResult);
}
이 분에서 Result.Text부분 오류가 뜨거든여 오류 코드는
CS7036 Form1.structPlayer.ResultText(int)'에서 필요한 정식 매개 변수 'iCardSum'에 해당하는 제공된 인수가 없습니다.
혹시 이 정보만으로 무엇이 문제인지 좀 알려주실수 있을까요 ?
도리도리님 코드 전체 다시 확인해보다가 잘못된 부분 찾았습니다 ㅠㅠ 감사드립니다
위에보시면 iCardSum을 저장할 변수지정이 안되어있는것 같습니다. 아마 _stPlayer1 구조체 안에 선언해 놨던것 같은데 _stPlayer1.iCardSum = . . . 으로 작성하시면 될것 같습니다. ^^
@@doridori5591 크 언제나 답변해주시네요 !! 감사드립니다!
클래스와 구조체의 차이가 이해안되신다면 그만큼 좋은겁니다.
서로 다른 점이 거의 없다는거니까 아무거나 편하게 사용하세요.
객체지향 개념을 깊숙히 파보고 디자인 패턴 같은것들 구현하기 이전엔 몰라도 될거라 생각합니다.
솔직히..제 추천은 그냥 클래스 쓰라고 말씀드리고 싶습니다.
강의 잘 보고 있습니다!
비슷한 의견 입니다. 이 강의를 올리는 시점에 이것저것 찾아 보기도 했었고 고민도 했었는데 c나 c++ 소스를 마이글레이션 할 때 장점 정도? 생각 되기도 합니다. 저는 어쨌는 직업을 위해서 배우는 거라고 생각하는 편이라 회사 쪽에서 생각하는 편인데 개발회사의 경우 대부분은 개발 가이드가 있으니 해당 내용에 특정 상황에서 구조체와 클래스에 대한 구분이 있다면, 그에 따라 움직이는게 맞지 않나 라는 생각을 많이 하는 편 입니다.
구조체, 클래스 잘 이해하였습니다 ㅎㅎ 매번 강의를 따라만 하다보니 나중에 스스로 만들 수 있을까 두려운마음도 드네요
제가 만든내용들이 예제 위주로 하다보니 시간은 많이 들어가지만 반복되는 부분들도 많고 계속 만들어 볼수 있기 때문에 따라가시면 충분히 혼자 만드실 수 있습니다. 제 영상을 보고 실무에서 사용하고 있다는 댓글을 볼때마다 매우 감사드리는데 댓글을 하나 더 볼 수 있었으면 좋겠네요. ㅎㅎ
안녕하세요. 올려주신 교육자료보면서 C#를 공부해나갑니다. 이해안되는 부분 있어서 질문 드려요
20:30초 쯤에 중단점을 걸어놓고 디버깅을 하는거좀 알려주세요. 도리선생님은 두번이나 디버깅을 연속으로하던데어떻게 하는건가요. 중단점 F9눌러놓고 F5하면, 윈폼나와서 첫번째 해 클릭하고, 또다시 디버깅을 하던데 그것좀 알려주세요
중단점을 잡아둔 부분을 한번보고 넘기고 다시 실행해서 한번더 중단점 잡힌부분으로 들어온거에요 ㅎㅎ 한번에 안넘기고 f10 을 눌러서 넘기시면 한줄씩넘길수도있습니다. 단순하게 같은줄이 두번실행됬다고 보시면 됩니다. 화이팅 이십니다. ㅎ
강의 감사히 듣고있습니다.
클래스는 new 선언해주지않으면 null로 에러가 난다는점을 잘 배웠습니다.
실례지만 관련 답변을 쉽게 찾지 못해서 질문하나 올려봅니다.
값형은 스텍으로 올라가고 참조형은 힙으로 올라간다고 피상적으로 배웠는데요, 힙영역은 null값을 가질수 없다는 이야기인가요? 그리고 또한 값영역은 struct 구조 그대로를 가지고있는데도 오류가 나지 않는것으로 보아 어떤 형태이든 받아놓을 수 있는건지.. 관련자료를 무엇이라 검색하면 나올까요?
흠 말씀하신 부분이 메모리의 특정 영역을 사용한다는 부분인데 일단 지정해서 사용 하는 부분이 아니라 메모리의 특정 공간을 나누어서 사용한다 정도만 생각하시고 넘어가시면 좋을듯 하고 Data Type에 따라서 Null을 가지거나 가지지 못한다고 보시면 될듯 합니다. (null을 가질 수 있도록 명시해 줄수도 있기는 하지만 잘 사용하지 않습니다.)
DataType 부분을 자세히 찾아보시면 좋을 듯 하며, Struct의 경우 class와 함께 비교해 보시면 조금더 좋을듯 합니다. (비슷한 내용을 한번 올렸던것으로 기억하기는 합니다. ^^;;)
@@doridori5591 답글 감사합니다.
좋은 강의 감사합니다. 구조체의 멤머값들이 회차가 늘어날때마다 누적이 되야 되니 player.iSun += iNumber가 되어야 되는게 아닐까요..
제가 출장중이었어서 어떤내용인지 확인이 늦어 지금답변드립니다.
해,달,별 게임의 경우 긴장감을 주기위해서 해,달,별 각각의 값 중에 마지막값들을 합산해서 총합을 구하게 구성하였습니다.
에메하게 높은 숫자의 카드가 있을경우에 자신의 차례에서 어떤카드를 새로 뽑을지 고민하도록 구성하였습니다. ㅎ
게임에 대한 설명이 조금 부족했던것 같습니다. ㅎ 말씀감사드립니다.
구조체 2번째/.
화이팅 이십니다. ㅎ
구조체를 사용하는 법에 대해서는 이해가 됐지만, 의문점은 그렇습니다.
구조체와 클래스는 분명 그 용도가 다르니까, 프로그램 개발자도 별도의 구분을 했을 것이라고 보는데.
사실상 이 영상만 봐서는 기능적으로, 용도적으로 구분이 안되어서요.
정확히 어떤 목적이나 용도일때는 구조체를 쓰고, 어떨 때는 클래스를 쓰는지 알 수 있는지요?
소개글의 링크를 타고 들어가시면 제 블로그에 적어놨는데 기본적은 느낌은 클래스를 조금 더 광범위하게 보시면 될것 같고 기능에는 논란이 조금있는듯 합니다. 구조체를 안쓰고 클래스만 써도 상관없다 정도로 생각하셔도 괜찮을듯 합니다.