반갑습니다. 앞으로의 대세가 C#이라 꼭 하셔야 할겁니다. 저도 하고 있는데 네트워크까지 복잡하지 않고 오히려 간단해 졌습니다. 과거 C++, Win32, MFC로 네트워크 하려면 정말 코딩량이 엄청났는데 그런 부분이 싹~ 없어지고 안정적입니다. 제가 올린 동영상은 임베디드에서 사용하는 것을 올려놔서 이것 따라 오시면 됩니다. ^^ 화팅~~
반갑습니다. 조금이라도 본인이 코드를 작성해 보거나 기본 코드를 옮겨 보는것 많은 도움이 됩니다. 언어가 다 거기서 거기입니다. C언어를 아시니 객체라는 부분에서 조금 추가된 내용과 윈도우 처리 방식을 이해하시면 C 언어에서 C#으로 넘어 갈 수 있습니다. 완강하시면 전체적인 이해가 되실 것이고 프로그래밍에 대한 원론적인 부분을 이해하시게 될 것입니다. 화팅~~ ^___________^
안녕하세요. 항상 좋은 강의 잘 보고 있습니다. 그런데 Foreach의 요소가 읽기 전용이라는 것이 잘 이해가 안되는데요. class Student { public string Name { get; set; } public int Age { get; set; } public string Major { get; set; } } class Program { static void Main(string[] args) { List list = new List(); list.Add(new Student { Name = "홍길동", Age = 17, Major = "미술" }); list.Add(new Student { Name = "임꺽정", Age = 27, Major = "공예" }); list.Add(new Student { Name = "장길산", Age = 37, Major = "체육" }); foreach (Student item in list) { item.Major = "금품회수"; } foreach (Student item in list) { Console.WriteLine(item.Major); } } } 이렇게 하면 출력값이 모두 "금품회수"가 되는데요. 혹시나해서 string[] nameList = new string[] { "Nick", "Bob", "Pull" }; foreach (string item in nameList) { item = "Edward"; } 이렇게 하면 강의해주신대로 에러가 발생하는데요. 확인 좀 부탁드립니다. 감사합니다 꾸벅(__)
반갑습니다. 다양하게 해보시고 계시네요. 일반적으로 foreach를 읽기 전용 반복문이라고 하고 코드의 item 을 반복변수라고 합니다. foreach문에서 다루게 되는 데이터는 대부분 변수의 값에 집중되어 있습니다. 즉 참조든 뭐든 그 값을 읽기 전용으로 가져와 변경을 못하게 하는 것이죠. 위에서 예로 들은 것에서 item 자체에 대한 위치값을 읽기 전용으로 바꾸지 못하게 합니다. foreach(Student item in list) 라고 했을 때 item 에 새로운 위치값을 대입할 수 없고 그대로 써야 하는 것이죠. 즉 list에서 참조로 받아온 위치값에 대해서 위의 코드에서는 변경할 수 없기에 이 부분을 읽기 전용이라고 합니다. 위의 코드로 보면 item.Major을 당연히 출력할 수 있습니다. item 참조를 읽기로 가져왔을 뿐 멤버에 대해서는 읽기의 범위가 적용되지 않습니다. 유추를 해보면 코드문법은 단순합니다. 이 단순함이 지금과 같이 가변적인 멤버변수에까지 읽기를 적용할 수는 없을 것입니다. 그렇다면 읽기에 대한 문법이 새롭게 나와야 할 것입니다. 물론 readonly를 붙일 수는 있겠지만 아직 컴파일러에서 하고 있지 않네요 ^^; 또 앞므로 어떻게 바뀔지는 모르지만 지금은 오직 그 자체의 값에 대해서 읽기로 가져옵니다. 위의 내용에서 foreach 문 안에서 item의 위치값을 바꾸려고 한다면 에러가 발생하게 될 것입니다. 이를 확인하려면 foreach문 안에서 item에 new를 통해 생성한 위치값을 대입해 보면 알 수 있겠죠! 그래서 아래에 string형에 값을 바꿀 때 에러도 발생하는 것입니다. ^^
갑자기 생각이 나서 댓글 올립니다. 괜찮다면 "통찰력을 길러주는 인문학 공부법" 이라는 책을 예스24 중고 서적에서 구입해서 한 번 보는 것도 좋을 것 같다는 생각이 듭니다. 인문학은 IT 프로그래밍의 개념을 더욱 깊이 있게 해주는데 동민님이 인문학도 같이 겸비하면 더욱 좋을 것 같다는 생각이 듭니다. 저도 이 책을 지금 보고 있는데. 버릴게 없는 책입니다. 아마도 동민님께서 계속적으로 열정을 가지고 프로그래밍을 할 수 있도록 해줄 촉진제가 될 것이라 생각이 들어 새벽3시 4분에 좀 많이 늦은 시각이지만 한 말씀 올립니다. ^^
ArrayList 코드 예문에서 System.Collections 쓰라는거 편집으로 날라갔나요?
임베디드 개발자라 몇 년간 현업에서 C만 썼었는데 PC용 테스트 Tool제작에 C#을 쓰면 생산성이 높다고 하여 강의 듣고 있습니다. 좋은 강의 감사합니다.
반갑습니다. 앞으로의 대세가 C#이라 꼭 하셔야 할겁니다. 저도 하고 있는데 네트워크까지 복잡하지 않고 오히려 간단해 졌습니다.
과거 C++, Win32, MFC로 네트워크 하려면 정말 코딩량이 엄청났는데 그런 부분이 싹~ 없어지고
안정적입니다. 제가 올린 동영상은 임베디드에서 사용하는 것을 올려놔서 이것 따라 오시면 됩니다. ^^ 화팅~~
아는 언어라고는 C밖에 없어서 인지 일단은 그러려니 하고 보고있습니다 완강후에 다시 보면 완벽히 이해가 될려나요? 항상 좋은 강의 감사합니다!
반갑습니다. 조금이라도 본인이 코드를 작성해 보거나 기본 코드를 옮겨 보는것 많은 도움이 됩니다.
언어가 다 거기서 거기입니다. C언어를 아시니 객체라는 부분에서 조금 추가된 내용과 윈도우 처리 방식을 이해하시면 C 언어에서 C#으로 넘어 갈 수 있습니다. 완강하시면 전체적인 이해가 되실 것이고 프로그래밍에 대한 원론적인 부분을 이해하시게 될 것입니다. 화팅~~ ^___________^
오타와 말의 단어가 오류가 발생하네요.
잘 보고 있습니다.
안녕하세요. 항상 좋은 강의 잘 보고 있습니다. 그런데 Foreach의 요소가 읽기 전용이라는 것이 잘 이해가 안되는데요.
class Student
{
public string Name { get; set; }
public int Age { get; set; }
public string Major { get; set; }
}
class Program
{
static void Main(string[] args)
{
List list = new List();
list.Add(new Student { Name = "홍길동", Age = 17, Major = "미술" });
list.Add(new Student { Name = "임꺽정", Age = 27, Major = "공예" });
list.Add(new Student { Name = "장길산", Age = 37, Major = "체육" });
foreach (Student item in list)
{
item.Major = "금품회수";
}
foreach (Student item in list)
{
Console.WriteLine(item.Major);
}
}
}
이렇게 하면 출력값이 모두 "금품회수"가 되는데요.
혹시나해서
string[] nameList = new string[] { "Nick", "Bob", "Pull" };
foreach (string item in nameList)
{
item = "Edward";
}
이렇게 하면 강의해주신대로 에러가 발생하는데요.
확인 좀 부탁드립니다. 감사합니다 꾸벅(__)
반갑습니다. 다양하게 해보시고 계시네요. 일반적으로 foreach를 읽기 전용 반복문이라고 하고 코드의 item 을 반복변수라고 합니다.
foreach문에서 다루게 되는 데이터는 대부분 변수의 값에 집중되어 있습니다.
즉 참조든 뭐든 그 값을 읽기 전용으로 가져와 변경을 못하게 하는 것이죠.
위에서 예로 들은 것에서 item 자체에 대한 위치값을 읽기 전용으로 바꾸지 못하게 합니다.
foreach(Student item in list) 라고 했을 때 item 에 새로운 위치값을 대입할 수 없고 그대로 써야 하는 것이죠.
즉 list에서 참조로 받아온 위치값에 대해서 위의 코드에서는 변경할 수 없기에 이 부분을 읽기 전용이라고 합니다.
위의 코드로 보면 item.Major을 당연히 출력할 수 있습니다. item 참조를 읽기로 가져왔을 뿐 멤버에 대해서는
읽기의 범위가 적용되지 않습니다.
유추를 해보면 코드문법은 단순합니다.
이 단순함이 지금과 같이 가변적인 멤버변수에까지 읽기를 적용할 수는 없을 것입니다.
그렇다면 읽기에 대한 문법이 새롭게 나와야 할 것입니다.
물론 readonly를 붙일 수는 있겠지만 아직 컴파일러에서 하고 있지 않네요 ^^;
또 앞므로 어떻게 바뀔지는 모르지만 지금은 오직 그 자체의 값에 대해서 읽기로 가져옵니다.
위의 내용에서 foreach 문 안에서 item의 위치값을 바꾸려고 한다면 에러가 발생하게 될 것입니다.
이를 확인하려면 foreach문 안에서 item에 new를 통해 생성한 위치값을 대입해 보면 알 수 있겠죠!
그래서 아래에 string형에 값을 바꿀 때 에러도 발생하는 것입니다. ^^
아! 감사합니다! item에 대한 읽기 전용일뿐. item(student)의 맴버까지 적용되지 않는 다는 말씀에서 무슨 뜻인지 감을 잡았습니다. (^^)(__)(^^)
화이~~~~~~~~~~~~~~~~~~~~~~~팅~~~ ^^
갑자기 생각이 나서 댓글 올립니다. 괜찮다면 "통찰력을 길러주는 인문학 공부법" 이라는 책을 예스24 중고 서적에서 구입해서 한 번 보는 것도 좋을 것 같다는 생각이 듭니다.
인문학은 IT 프로그래밍의 개념을 더욱 깊이 있게 해주는데 동민님이 인문학도 같이 겸비하면 더욱 좋을 것 같다는 생각이 듭니다. 저도 이 책을 지금 보고 있는데. 버릴게 없는 책입니다.
아마도 동민님께서 계속적으로 열정을 가지고 프로그래밍을 할 수 있도록 해줄 촉진제가 될 것이라 생각이 들어 새벽3시 4분에 좀 많이 늦은 시각이지만 한 말씀 올립니다. ^^
감사합니다. eBook으로 바로 구매했네요^^
잘듣고 있습니다.