개발언어/C#191 [C#] 델리게이트 (Delegate) - 콜백, 체인 1. 델리게이트 (Delegate) 해석하면 '대리인'이라는 뜻의 델리게이트는 메소드를 참조하는 변수이다. C++의 함수 포인터와 비슷하기 때문에 C++을 공부한 사람이라면 어렵지 않게 이해하겠지만, 그렇지 않은 사람들을 위해 간단히 개념을 설명해본다. 대리라는 말은 보통 내가 해야할 일을 다른 누군가에 위임하는 것을 말한다. 나를 대리할 사람이 있다면, 그로써 우리는 많은 수고를 덜을 수 있다. 부모님의 심부름을 동생에게 시킨다든지.. 배가 고플때 동생에게 라면을 끓이게 한다든지... 음.. 물론 현실은 우리의 기대와는 많이 다르다..; 어쨋든 프로그래밍에서도 이런 대리인의 역할을 해주는 변수가 존재하는데, 그것이 바로 델리게이트(Delegate)이다. 델리게이트는 메소드를 대신해서 호출하는 역할을 한.. 2021. 1. 18. [C#] 다른 Thread에서 UI접근하기 async / await를 이용한 보다 간편한 UI 접근방법을 포스트로 작성하였습니다. 해당 포스트와 함께 https://ddochea.tistory.com/40 를 함께 참고해주시기 바랍니다. 오랜 시간이 걸리는 작업에 대해선 Thread를 생성하여 처리하는 것은 어느 프로그램이나 마찬가지일 것이다. C# 기반 프로그램도 예외는 아니다. 만일 Thread 없이 만들면 어떻게 될까? Thread를 선언하지 않은 상태에서 아래와 같은 프로그램을 만들어보았다. 해당 프로그램은 입력한 수 x 만큼 2를 더하는 프로그램. 즉, x*2를 덧셈만으로 계산하는 프로그램이다. 다음 프로그램의 소스는 아래와 같다. using System; using System; using System.Collections.Generi.. 2021. 1. 18. [C#] 구조체 마샬링 참고 https://stackoverrun.com/ko/q/11144076 C# C++ : Char []가 포함 된 [In, Out] 구조체를 마샬링 참조 매개 변수 a를 취하는 함수를 호출하려고하는 C++ .dll (코드를 변경할 수 없음)이 있습니다. 구조체 유형 (.dll에도 정의 됨). 이 함수는 Struct에 'paramName'및 'groupName'필드가 채워져 있어야하며 stackoverrun.com https://blog.danggun.net/16 [C#] c++ DLL을 C#에서 사용해보자 ( 함수 마샬링 ) 관련글 c++ DLL을 C#에서 사용해보자 ( 함수 마샬링 ) c++ DLL을 C#에서 사용해보자 ( 클래스 마샬링 ) *Window XP 32bit 기준입니다.* 머......피치못할.. 2021. 1. 15. C#에서 byte[]를 short[] 또는 float[] 배열로 변환하는 방법 원본출처 : https://markheath.net/post/how-to-convert-byte-to-short-or-float How to convert byte[] to short[] or float[] arrays in C# Mark Heath's Development Blog markheath.net C#에서 오디오 코드를 작성할 때 자주 발생하는 문제 중 하나는 짧은 값으로 표시하는 것이 더 좋은 원시 오디오를 포함하는 바이트 배열을 얻는 것이다(Int16) 배열 또는 플로트(float)Single) 배열. (일부 오디오는 32비트 인트, 64비트 플로팅 포인트, 그리고 24비트 오디오 등) 다른 형식도 있다. C/C++에서 솔루션은 간단하다. 바이트 배열의 주소를 에 캐스팅한다. short *.. 2021. 1. 13. [C#] 배열 0으로 초기화(Enumerable.Repeat) 배열을 선언하면서 0또는 같은 수로 초기화 하고 싶다. 그러나 생성자에는 없는듯 하여 알아보았다. 한글로 검색하면 나오질 않더이다. 구글 검색 : Array Zero Initialize 참고 : http://stackoverflow.com/questions/14210369/initialize-an-integer-array-with-a-single-value-in-c-sharp-net 정말 단 한줄로 가능. using using System.Linq; double[] array= Enumerable.Repeat(0, length).ToArray(); 한줄로 끝난다. 굿 ? 자료형만 맞춰주면 되고 '0'에 초기화 하고 싶은 숫자를 넣어 주면 된다. length 는 할당하고 싶은 크기를 넣어 주면 된다. 출처.. 2021. 1. 13. [C#] OpenFileDialog에서 파일 이름만 얻어오기. string fileName = openfiledialog.FileName; string result_fileName = fileName.Substring(fileName.LastIndexOf("\\") + 1); 결과 : fileName : OpenFileDialog에서 가져온 파일의 전체 경로와 파일 이름을 가져 옴. result_fileName : OpenFileDialog에서 가져온 파일의 이름만 저장. 2020. 12. 22. [C#] 파일 다중선택 열기(OPENFILEDIALOG) C#에서 파일을 다중으로 선택하여 가져오기를 하는 코드이다. MP3 파일을 다중으로 선택하여 가져오기를 할 경우에 적용해본 코드이다. private void MP3File_Open() { using (OpenFileDialog dlgOpen = new OpenFileDialog()) { dlgOpen.Filter = "MP3 File|*.mp3"; dlgOpen.Title = "Select Audio File"; dlgOpen.Multiselect = true; // 파일 다중 선택 //dlgOpen.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic); if (dlgOpen.ShowDialog() == Dialog.. 2020. 12. 22. [C#] ImageList 채우기 및 ListView 와 연동하기 (Stream, ListViewItem) 이미지는 웹 iis 쪽에 있으며 그 이미지를 ImageList에 Form_Load() 시에 추가하고 Listview에 연결한 후에 item을 추가 한 코드 예제 입니다. string[] filepathlist = { "http://localhost:8888/_01.gif", "http://localhost:8888/_01.gif", "http://localhost:8888/_02.gif", "http://localhost:8888/_03.gif", }; int count = 0; // Item 이름을 위한 임시 변수 foreach (string path in filepathlist) { // WebClient 를 사용해서 원격 이미지를 로드 하고 Stream에 Write 한다. WebClient clie.. 2020. 12. 22. [C#] ListView 가로 스크롤 세로 스크롤로 바꾸기 리스트뷰가 꽉차면 가로 스크롤이 생겨나면서 오른쪽으로 아이템이 쭉 생겨나는 현상 이 현상에서 세로로 아이템이 나타나도록 하는 방법 listView1.View = View.Details; listView1.HeaderStyle = ColumnHeaderStyle.None; ColumnHeader h = new ColumnHeader(); h.Width = listView1.ClientSize.Width -SystemInformation.VerticalScrollBarWidth; listView1.Columns.Add (h); 폼 생성자나 ListView 관련 함수에 위의 소스를 추가하면 된다.. 위의 소스는 헤더컬럼을 하나 만든 뒤 숨김을 하는 코드이다. 리스트뷰에 헤더컬럼을 하나라도 추가하지 않으면 세로.. 2020. 12. 22. [C#] Winform ListView(리스트뷰) 이미지 넣기 오늘은 C# 윈폼에서 ListView 컨트롤에 대해서 알아보려고 합니다. 그 중에서도, 리스트뷰 컨트롤에 이미지를 넣는 방법에 대해서 설명 드리려고 합니다. 그럼 바로 본문으로 넘어가서 어떻게 ListView 컨트롤에 이미지를 넣는지 예제를 통해서 알려 드리도록 하겠습니다. 먼저, 아래와 같이 빈 윈폼 프로젝트를 생성해 주시고 ListView 컨트롤을 배치해 주시기 바랍니다. 빈 윈폼 프로젝트 생성 및 ListView 컨트롤 배치 참고로 위에서 Listview 컨트롤과 ImageList 컨트롤 2개의 컨트롤을 배치하였습니다. 그리고 저는 Resource에 이미지 3개를 다음과 같이 추가하였습니다. Resource(리소스) 이미지 추가하기 이제 리소스에 추가된 이미지를 ListView에 추가하여 불러오도록.. 2020. 12. 22. 이전 1 ··· 13 14 15 16 17 18 19 20 다음