글

라벨이 C#인 게시물 표시

[C#]CS1612: 'List.this[int]'은(는) 변수가 아니므로 해당 반환 값을 수정할 수 없습니다.

리스트를 통해 구조체의 맴버에 접근할때 다음과 같은 오류가 난다. 리스트의 코드는 대략 간략하게 다음과 같이 구성되어있다고 보면 알기 쉽다. class List < T > {         T [ ]  m_listData ;          int  m_nIdx ;           public List ( int  size )          {                 m_listData  =  new T [ size ] ;          }           public  void  Add ( T data )          {                 m_listData [ m_nIdx ]   =  data ;          }          //인덱서를 이용 배열의 값을 리턴함. 구조체는 값이 복사된다.         public T this [ int  idx ]          {                 get  {   return ...

[프로그래밍입문/책]Hello Coding 프로그래밍

이미지
http://www.hanbit.co.kr/store/books/look.php?p_code=B6832340619 Hello Coding 프로그래밍 프로그래밍 언어 입문서가 아닌 프로그래밍 기초 개념 입문서 www.hanbit.co.kr 현재 유튜브 채널 운영중인 현직 프로그래머가 낸 책이다. 언어보다는 개념을 중요시 여기고, 비 프로그래머가 보기 좋게 구성되어있다. 언어는 C #으로  구성되어있으므로 유니티 문법입문서적으로 괜찮을것이다. PS. 책에서 말하고 있지만 어디까지나 전공자를 대상으로 하는 책이 아니고, 전혀 문외한인 사람의 가장 기초적인 코딩을 위한 서적이니, 전공자는 절대 사지마세요.!

[c#]포인터를 사용하려면?

이미지
[c#]포인터를 사용하려면? 2017. 11. 2. 15:30 URL 복사 통계 본문 기타 기능 http://z-man.tistory.com/170 C# unsafe 와 fixed (포인터 안전하게 사용하기 char*, int* 등등..) C# 에서도 C++ 처럼 type* 등 포인터를 사용 할 수 있다. C#에서는 이런걸 unsafe 코드라고 부른다. 가비지 콜렉터 설명할때 나왔었는데... CLR에서 메모리 관리를 하는데 *을 사용함으로써 메모리를 직접 건드리는것은 매우 위험하다 =ㅁ= *을 사용하는 코드를 작성하려면 컴파일 옵션으로 /unsafe 를 사용해야 한다. 아래 이미지 보고 참고하면 됨 프로젝트 속성 -> 빌드 -> unsafe code 에 체크 해줘야지만 빌드 에러없이 실.. z-man.tistory.com https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/unsafe-code-pointers/pointer-types 포인터 형식(C# 프로그래밍 가이드)

[링크]c#에서 효율적인 메모리관리법

이미지
http://usroom.tistory.com/entry/%ED%9A%A8%EA%B3%BC%EC%A0%81%EC%9D%B8-C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC-%EA%B8%B0%EB%B2%95 효과적인 C# 메모리 관리 기법 http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=40743 조명근 narlamy@ndoors.net|엔도어즈 기술 지원팀 팀장으로 근무하... usroom.tistory.com

[C#] 구조체 리스트에서 변수 직접 접근이 불가능해지는 현상

이미지
구조체리스트에 int형을 직접 접근하여 변수값을 변경하려하면 컴파일 에러가 발생한다. 이를 그냥 리스트를 가져오면 포인터가 아닌 복사 생성이 되어 실질적으로 변경된값이 바뀌지않았다. 그래서, 생성된 임시구조체에 값을 변경하고 해당리스트에 임시변수를 넣어준는 것으로 해결됬다. 구조체는 정적할당되어 생성되므로, 값을 넘길때 참조가 아닌 값이 참조가 된다. 그러므로, 해당값을 변경하기 위해서는 직접 생성자를 호출(new)하여 객체 내부의 값을 변경해야한다. http://mrsnake.tistory.com/15 [C#] List로 다수의 Struct들 관리하기 + Class와의 차이 흠... 일단 동적할당에 관련되어서 많은 것들이 많다. 아무래도 배열을 그대로 사용 하는 것은 갯수의 제한이 있고, 시스템이나 상황에 따라 유동... mrsnake.tistory.com

[C#]RGBtoHVS

Vector3 RGB2HSV(float r, float g, float b) { Vector3 vHVS; //x,y,z; float min, max, delta; min = Mathf.Min(r, g, b); max = Mathf.Max(r, g, b); vHVS.y = max / 255.0f * 100.0f; // v delta = max - min; if (max != 0) vHVS.z = delta / max * 100.0f; // s else { // r = g = b = 0 // s = 0, v is undefined vHVS.z = 0; //s vHVS.x = -1; //h return vHVS; } if (r == max) vHVS.x = (g - b) / delta; // between yellow & magenta //h else if (g == max) vHVS.x = 2 + (b - r) / delta; // between cyan & yellow //h else vHVS.x = 4 + (r - g) / delta; // between magenta & cyan //h vHVS.x *= 60; // degrees //h if (vHVS.x < 0) vHVS.x += 360; //h return vHVS; }

[C#]박싱과 언박싱

박싱: 정적할당변수를 동적할당된변수로 바꾸는 것 -> 동적할당하여 전역에서 접근가능하도록 만듦. 언박싱: 동적할당된 변수를 정적할당으로 변경하는것 -> 값이 복사되어 지역변수 사용됨. https://linsoo.co.kr/archives/8997

[객체지향프로그래밍]동적바인딩과 정적바인딩 개념

*아래 내용은 모두 프로그래밍에 해당되는 내용입니다. 주관적인 내용도 들어가있습니다. 잘못된점이 있다면 지적부탁드립니다. 1.바인딩(binding)   루틴 이나  객체 의  링킹 이 실시 그순간의 상태를 말함. -> 동적할당될때 함수의 기능이 결정 *루틴: 함수(메서드)나 라이브러리 -> 함수의 기능 *객체: 설계된 클래스를 변수로 한것. -> 객체지향형언어에서는 클래스변수의 선언 *링킹: 연결하는 과정 -> 동적할당을 하면 메모리가 결정됨 2.동적 바인딩(dynamic binding)  1)프로그램의 실행시에 저장소가 마련되는것. -> 동적할당시에 메모리가 생성됨  2)프로그램의 실행 경로가 미리결정됨. 3.정적바인딩(static binding)  1)프로그램의 실행 전에 저장소가 마련되는것. -> 컴파일 중에 저장소가 마련되고 변수의 이름으로 레이블링 됨.   2)프로그램의 실행 전에 경로가 미리결정됨. 참조:  http://www.eyegirl.co.kr/bbs/board.php?bo_table=web_tip&wr_id=113