Programming70 C# 파일명과 확장자 추출 함수 정리 파일명 전체 추출하기 (확장자도 포함) string filePath = @"D:\img\car\testcar.jpg"; string fileName = System.IO.Path.GetFileName(filepath); //결과 : "testcar.jpg" 파일 확장자 가져오기 string filePath = @"D:\img\car\testcar.jpg"; string fileName = System.IO.Path.GetExtension(filepath); //결과 : ".jpg" 파일명만 가져오기 string filePath = @"D:\img\car\testcar.jpg"; string fileName = System.IO.Path.GetFileNameWithoutExtension(filepath);.. Programming/C# 2021. 12. 15. C# 경로(Path) 함수 정리 파일을 다운받거나 실행할 때 생성되는 파일들의 경로를 지정할 때 사용되는 함수를 정리해놓을려고 한다. 현재 Application이 존재하는 경로 가져오기 > Application.StartupPath + "path" ex : string downPath = Application.StartupPath + "\test" 현재 작업이 실행되는 경로 가져오기 > System.Reflection.Assembly.GetExecutingAssembly().Location 경로 합치기 > Path.Combine(string path1, string path2..) Programming/C# 2021. 12. 15. C# Datagridview 속성 / 기능 정리 이번 글에서는 C# Winform에서 엄청 자주 사용되는 Datagridview의 기능들을 정리해 놓을려고 한다. 1. 컬럼 숨기기 및 표출 (둘 다 가능) this.dataGridView1.Columns[0].Visible = true; this.dataGridView1.Columns["column_name"].Visible = true; 2. Row 인덱스 값 구하기 //1번 방법 int rowidx = -1; rowidx = dataGridView.SelectedRows[0].Index; //2번 방법 int rowidx = -1; if(CurrentCell != null) //CurrentCell이 null이 아닐 때 rowidx = dataGridView.CurrentCell.RowIndex; .. Programming/C# 2021. 12. 7. C# 접근 제어자 Internal란? (총 정리) Internal라는 키워드는 형식 멤버에 대한 액세스 한정자입니다. 이제 이것을 설명하기 전에 앞서 설명에 필요한 단어들을 정리 해보겟습니다. 1. 모듈(Module) 컴퓨터 용어에서 모듈은 "컴파일이 완료된 바이너리"를 말하는것이며, 이것을 다르게 말하면 라이브러리를 말하는 것입니다. 이 라이브러리는 여러 가지의 타입 및 함수들을 모아둔 집합을 말합니다. 2. 어셈블리(Assembly) 어셈블리란 .NET 기반 애플리케이션에 대한 배포, 버전 제어, 재사용 등 프로그램의 기본 단위입니다. 예로는 실행 파일(.exe) 또는 동적 연결 라이브러리(.dll)파일과 같은 .NET 애플리케이션의 구성 요소라고 보시면 됩니다. .Net에서는 소스 코드 파일 1개 이상에서 어셈블리를 빌드 할 수 있으며, .Net .. Programming/C# 2021. 11. 10. C# 프로퍼티(Property)란? (사용하는 이유 / Java get set) 서론 C#의 프로퍼티에 대해 알아볼 것이다. java에서의 getter, setter 라고 보면된다. 우선 글을 작성하기 앞서 이 주제에 대한 글을 작성한 이유는 멤버변수 선언을 해놓는것과 프로퍼티(get,set)로 속성을 부여해주는 차이가 무엇일까? 라는 생각으로 내용을 정리하게됐다. 이제 이 차이에 대해 알아보겠다. 우리는 java와 c#과 같은 객체 지향언어를 사용할 때면 정보 은닉화에 대해서 항상 염두 해야한다. 만약 염두하지 않는다면 외부 클래스를 상속 받고 객체를 참조하는 부분에 있어 문제가 생길 경우가 빈번하다. 그래서 접근제한자에서의 private를 사용할 경우 getter와 setter의 메소드를 구현 해야 한다. ===get, set 접근자=== get : 읽기 전용 set : 쓰기 전.. Programming/C# 2021. 11. 5. C# Thread.Sleep() vs Task.Delay() 함수의 차이 나는 여지껏 주기적인 실행 텀을 구현할때면 Thread.Sleep() 함수를 사용해왔다. 아무래도 프로세스 실행에 있어 지정한 시간만큼 지연을 주는 것이기 때문에 프로세스 진행에 영향을 끼치지않을까하는 생각이 문뜩 나서 찾아보니, Task.Delay라는 비동기 함수가 있었다. 우선 기능에 대해서부터 말해보자면 - Thread.Sleep()함수는 동기함수이며, 해당 지정한 ms만큼동안 스레드를 차단하는 함수이다. (blocking) 그래서 비동기 코드에서 해당 함수를 사용하는건 매우 절제해야하는 소스중 하나라고도한다. 이에 반면, Task.Delay()함수는 비동기함수이며, 현재 스레드를 차단하지 않고 논리적 지연을 원할 때 사용하는 함수이다. (non-blocking) 따라서 해당 프로세스가 동기적으로 .. Programming/C# 2021. 10. 18. C# 소수값 구하기 소수 구하는 로직 정리 1은 소수값이 아니므로 2부터 시작을하며, 입력된 숫자의 값보다 작은 수들로 몫을 구했을 때 0이 나오면 소수가 아니다. 예를 들어, input : 7을 처리한다하면 7%2!=0, 7%3!=0, 7%4=0, 7%5!=0, 7%6!=0을 먼저 해보고 나누어 떨어지지 않는 수에서 해당 숫자들에 대해 다시 for문을 돌며 해당 숫자들 중 소수값을 찾는다. 찾는 과정 중에서 for문 조건식에서 2로 나눈 이유는, 4이상의 수 중에서 자신의 절반 값까지는 어떤 수로 나누어도 떨어지지 않는 수이기때문에 반복횟수를 줄이기 위해 2로 나누었다. 2로 나누지않고 for(int i=2; i< n; i++)로 해도된다. =====소스===== using System; using System.Colle.. Programming/C# 2021. 10. 12. 입력 클래스 정리 (Scanner, BufferedReader, StringTokenizer) 나는 java에서 보통 입력을 받을려면 Scanner로 사용하는걸로 알고있었다. 그렇지만 시간과 메모리에 아주 예민한 알고리즘 풀이에 있어서는 여러 방법들이 있다고한다. 첫번째로는 BufferedReader이다. BufferReader는 Scanner보다 더 빠른 퍼포먼스를 제공한다. 두번쨰로는 StringTokenizer이며, 해당 클래스는 특정 문자를 기준으로 나눠서 출력할 수 있는 클래스이다. === 기존 Scanner === (12번이나 호출해야함) 1 2 3 4 5 6 7 8 9 10 11 12 // 한줄 입력 for (int i=0;i 1 // s[1] = "2"; // s[2] = "3"; === StringTokenizer === (split과 비슷하게 특정 문자열을 기준으로 짜르지만 sp.. Programming/Java 2021. 9. 30. C# Array.ConvertAll 의 편의성 백준에서 블랙잭 문제를 풀고나서 여러 사람들이 푼 걸 보다가 아주 좋은 문법을 알아냈다. Console.ReadLine()을 쓰면 string형으로 받게되는데, 보통 해당 값을 int형 배열에 넣어야 하는경우 string[]에 넣었다가 for문으로 int형으로 하나씩 파싱 해줬엇다. 근데 Array.ConvertAll를 쓰면 안그래도 된다. 가독성과 빌드 시간 측면에서 아주 좋은 함수인 것 같다! 아 그리고 var (N,M) 이것도 첨 본건데 두 줄을 나눠서 안쓰고 하나로 바로 끝낼 수 있어서 유용한듯 예제) using System; using System.Collections.Generic; using System.IO; using System.Text; using static System.Consol.. Programming/C# 2021. 9. 26. C# HashSet<T> 중복제거 1. 수학과 같은 연산을 할 때 사용한다. Ex ) 집합 형식을 사용할 때 사용 https://docs.microsoft.com/ko-kr/dotnet/api/system.collections.generic.hashset-1?view=netcore-3.1 HashSet 클래스 (System.Collections.Generic) 값 집합을 나타냅니다.Represents a set of values. docs.microsoft.com 2. 중복제거할때 용이함 해당 아래의 예제는 HashSet의 예제로 작성했으며, 해당 경로에 있는 메모장의 Text에서 한줄 씩 ReadLine으로 받아 중복값을 제거하는 로직이다. 앞으로 HashSet은 중복제거할 때 자주 써먹자 using System; using Syste.. Programming/C# 2021. 9. 26. 이전 1 ··· 3 4 5 6 다음 💲 많이 본 글