목록전체 글 (20)
건축과컴퓨터
함수가 무엇인지 설명하기 전에, 다음의 상황을 생각해보자. Alice는 사탕을 모으는 것이 취미다. 그래서 돌아다니면서 발견하는 사탕을 사탕 주머니에 넣는다. Alice가 사는 세상에는 사탕이 세 가지 종류밖에 없는데, 각각 1번, 2번, 3번의 번호가 매겨져 있다고 하자. Alice가 돌아다니면서 발견한 사탕이 (사탕 번호, 개수) 쌍으로 주어질 때, Alice가 돌아다니면서 모은 사탕들 중 몇 번 사탕이 제일 많은지, 그 사탕이 총 몇 개가 있는지 알아보자. 이번에는 사탕 번호, 사탕 개수 쌍이 튜플 리스트로 미리 주어져있다고 하고, 이 상황을 코드로 옮겨보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ..

Namespaces (rhino3d.com) Namespaces Classes related to getting user input for things like points, objects, and numbers Classes related to getting user input for things like points, objects, and numbers developer.rhino3d.com RhinoCommon API의 모든 것이 들어있는 곳. Rhino를 돌아가게 하는 데에 필요한 각종 자료구조들이 설명되어있는데, 앞으로 다룰 대부분의 내용은 Geometry에 관한 것이므로, 아래 이미지를 따라 해당 내용을 확인해보도록 하자. 들어가보면 Rhino.Geometry라는 namespace 아래에 C..
이전 글 : 2021/01/10 - [C# for Grasshopper] - [C# - basic] struct, class 프리뷰 4 - 값과 참조 이전 글에서 먼저 생성해둔 클래스를 다른 클래스에 집어넣었더니, 속성을 공유해버리는 상황이 발생한 것을 보았다. 이렇게 속성을 공유하는 두 변수를 만드는 것이 의도였다면 괜찮겠지만, 그렇지 않고 그냥 지금 가지고 있는 속성값을 복제만 해오고 싶은 경우에는 어떻게 할까? 답은 의외로 간단한데, 이에 대응할 수 있는 새로운 생성자를 정의해주면 된다. 이게 무슨 말인지 아래 코드를 보고 이해해보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class StudentClass { // property public string ..

이전 글 : 2021/01/10 - [분류 전체보기] - [C# - basic] struct, class 프리뷰 3 - 속성 앞선 글들에서는 struct와 class가 거의 비슷하다고만 설명하고 전부 class로만 설명을 진행했다. 이 둘은 뭐가 다른 걸까? 공식 문서에서 말하기로는, ‘구조체 형식’은 데이터와 관련 기능을 캡슐화할 수 있는 값 형식입니다. 구조체 형식은 struct 키워드를 사용하여 정의합니다. 클래스로 정의된 형식은 참조 형식 입니다. 정도의 이야기를 해준다. 여기에서 주목해야 할 부분은 바로 '값 형식'과 '참조 형식'이라고 되어있는 부분이다. 이 둘이 어떻게 다르게 동작하는지 볼 수 있는 간단한 예제부터 확인해보자. 코드 길이가 길어보일 수 있지만, 5번째 줄부터는 지금까지 보아왔..
이전 글 : 2021/01/09 - [C# for Grasshopper] - [C# - basic] struct, class 프리뷰 2 이전 글들에서는 class를 만들어서 속성을 넣고, 생성자를 통해서 속성에 값을 부여하고, 이런 속성 값을 불러와서 활용하는 방법을 다뤘다. 그런데 속성 값은 꼭 생성자를 통해서만 부여해야 하는 것인가? 결론부터 말하자면, 그렇지 않다. 아래의 두 클래스 코드를 살펴보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 class StudentBefore { // property public string Name; public int Sc..
이전 글 : 2021/01/09 - [C# for Grasshopper] - [C# - basic] struct, class 프리뷰 1 그러면 Student 클래스를 활용하여 재시험을 봐야 하는 학생을 뽑아내는 문제에 다시 접근해보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 using System; using System.Collections.Generic; namespace FirstTest { class Program { class Student { // property publi..

이전의 튜플 글에서 이어서. 기존에 이름과 점수가 따로 놀던 구조에서 튜플을 이용해서 이름과 점수를 잘 묶어놓았는데, 그래도 아직 조금 찝찝한 부분이 남는다. Item1, Item2와 같은 이름으로 이름과 점수를 불러오는 것이 너무나도 비직관적으로 느껴지지 않는가? 리스트의 Count 속성이나 어레이의 Length 속성처럼 이름만 보고 어떤 값인지 직관적으로 알 수 있도록 속성을 네이밍하면 한결 더 나을 것이다. 이런 상황에서 struct, 그리고 class를 사용하는 것이 가능하다. 이 글에서는 여러 값들을 묶어서 하나의 변수 안에 속성으로 관리하는 관점으로 struct와 class를 다루겠지만, 실제로 이 둘을 통해서 훨씬 많은 것들을 할 수 있음을 미리 알아두었으면 좋겠다. 이번 글에 프리뷰라는 이..
array, list 글들에서는 학생들의 점수를 받아서 그 중 재시험을 보아야 하는 학생이 몇 명이나 있는지 찾아내는 문제를 다루었다. 여기서 문제를 조금 바꿔보자. 학생들의 점수 뿐만 아니라 학생들의 이름까지 주어졌다고 할때, 재시험을 보아야 하는 학생들의 목록을 뽑아내는 건 어떻게 할까? 아래의 코드를 보자. 1 2 3 4 5 6 7 8 9 10 List scores = new List { 99, 13, 66, 82, 3 }; List names = new List { "Alice", "Betty", "Charlie", "David", "Emily" }; List examAgainList = new List(); for (int i = 0; i