728x90

정리가 필요한 카테고리(추후 정리) 58

Android] 블루투스 프로토콜 UUID

블루투스 모듈이랑 안드로이드 기기 간 통신을 해야하는데,사용하는 프로토콜에 맞는 UUID를 사용해야 한다.모르고 했다간 괜한 부분에서 삽질하게 된다. BASE UUID = '{00000000-0000-1000-8000-00805F9B34FB}'; SDP_PROTOCOL_UUID = '{00000001-0000-1000-8000-00805F9B34FB}';UDP_PROTOCOL_UUID = '{00000002-0000-1000-8000-00805F9B34FB}';RFCOMM_PROTOCOL_UUID = '{00000003-0000-1000-8000-00805F9B34FB}';TCP_PROTOCOL_UUID = '{00000004-0000-1000-8000-00805F9B34FB}';TCSBIN_PROTOC..

C#] 리스트뷰 항목(아이템) 더블 클릭 시 항목 읽어오기

C#] 리스트뷰 항목 더블클릭 시 항목 읽어오기 리스트뷰에 있는 항목들에 대해서 더블클릭을 하면그 항목의 정보들에 대해서 조회가 필요한 경우가 있다. 기본적으로 다룰 수 있는 여러 가지 이벤트를 이용하는 방법들이 많다.MouseDown이나 다른 여러 가지 이벤트를 사용하는 꼼수들이 존재하지만내가 원하던 것에 가장 근접한 방식은MouseDoubleClick 이벤트를 이용하는 것이었다. 이벤트 자체는 마우스를 이용해 더블 클릭을 하면 발생하지만,문제는 리스트뷰의 특정 항목에서만 작동하는 게 아니라,리스트뷰에 대한 더블클릭으로 간주되는 것이라서 항목 조회가 되는 건 아니다.(MouseDown이나 Hit를 사용하는 것도 이 때문이지만 구현이 복잡해진다.) 여기서 조금의 꼼수를 부릴 필요가 있다.어떤 항목에 대한..

C#] 하위 디렉토리 내용 검색하기

C#] 하위 디렉토리 내용 검색하기 어떤 디렉토리가 있으면 그 디렉토리 내의 하위 디렉토리를 포함한모든 파일 정보나 디렉토리 정보까지 검색하여 사용해야 하는 일이 있다. 흔히 파일 정보 검색은 Directory클래스나 DirectoryInfo 클래스에서 정의된GetFiles나 GetDirectories를 등을 사용하는데어떤 속성값도 없이 경로만 지정해준 상태에서 목록을 반환하게 하면,선택한 경로 내의 하위 디렉토리에는 접근하지 않는 문제가 발생한다. 모든 하위 디렉토리의 파일 혹은 디렉토리 목록을 조회하는 것이 목적이면메서드의 파라미터에 검색 옵션을 추가해주면 된다. 12Di = new DirectoryInfo(searchPath);FileInfo[] file = Di.GetFiles("*",Search..

C#] 버튼 텍스트 바꾸기

C#] 버튼 텍스트 바꾸기 버튼에 별도의 이미지를 적용하는 경우는 다른 케이스지만,간단히 버튼을 생성하고 속성 Text 내용만 변경해줘야 할 때가 있다. 이 프로그램은 TPWord로, 영단어 공부용으로 만들었다.(실제로는 영단어 공부가 되었는가에 대해서는...) 외우고자 하는 영단어 정보를 입력해두고미리 설정해둔 시간에 맞춰 영단어 뜻을 물어보는 그런 프로그램이다. 어느 때고 가리지 않고 나타나서,게임을 하다가도 나타나고, 과제를 하다가도 나타나서결국은 만든 의도랑 크게 벗어나 사용하고 있지는 않지만,이 프로그램에서 시작과 중단에 관한 버튼을 다음과 같이 사용했다. 나는 bool 타입의 변수를 별도로 선언해서버튼을 클릭 이벤트가 발생하면서 호출되는 함수에변수값을 토글하는 식으로 버튼 텍스트를 변경했는데별..

C#] System.Net.Sockets 네임스페이스

### System.Net.Sockets 네임스페이스 네트워크에 대한 엑세스를 엄격하게 제어해야하는 개발자를 위해서Windows Socket(Winsock) 관련 인터페이스를 제공하는 네임스페이스.해당 네임스페이스 하위의 TcpClient, TcpListener 및 UdpClient 클래스는TCP/UDP 방식으로 인터넷에 연결하기 위한 자세한 정보를 캡슐화하여네트워크 서비스에 대한 클라이언트 연결 제공 및 클라이언트에서 연결을 수신하는 서비스를 제공함. ## NetworkStream 클래스 네트워크 액세스를 위한 내부 데이터 스트림 제공.NetworkStream을 만들려면 연결된 Socket을 제공해야 함.제공된 Socket에 대해 NetworkStream이 가지는 FileAccess 사용 권한을 정지할..

C#] System.Net 네임스페이스

### System.Net 네임스페이스 현재 네트워크에서 사용되는 여러 프로토콜에 대한 단순한 인터페이스 제공된다.DNS, IPAddress, IPHostEntry 클래스 등이 존재하며, 상당히 많은 클래스가 존재한다. ## DNS 클래스 단순 도메인 이름 확인 기능을 제공하는 클래스.특정 호스트의 정보를 인터넷 DNS에서 검색하는 정적 클래스이다.DNS 쿼리에서 검색한 호스트 정보는 IPHostEntry 클래스의 인스턴스에 반환된다.지정된 호스트의 DNS DB에 여러 항목이 있으면 IPHostEntry에 여러 IP 주소와 별칭을 포함한다. # GetHostName : 로컬 컴퓨터의 호스트 이름을 가져옴# GetHostAddress : 지정된 호스트의 IP 주소 반환함 ## IPAddress 클래스 컴퓨..

C#] MySQL 사용하기

C#] MySQL 사용하기 필자가 읽고 있는 책에서 그리고 공부하고 있는 사이트에서C#을 이용해서 데이터베이스를 다룰 수 있게끔 해놨는데,그 중에 필자의 눈에 들어왔던 것은 MySQL을 활용하는 것이었다. 이미 필자는 지난 학기 데이터베이스 프로그래밍을 통해서 인터넷 쇼핑몰을 만들어본 경험이 있어서MySQL 쿼리문 활용은 어렵지 않게 할 수 있지만, 이를 C#으로 다룰 수 있다는 것에곧바로 필자가 평소 즐기는 게임인 메이플스토리의 '코어 젬스톤'이라는 것을 획득했을 때마다작성하여 기록하는 일종의 가계부 비슷한 프로그램을 만들었다.(이를 속칭 '젬계부'라 한다...) (디자인이 개판이어도 이해 바란다.. 그냥 실습이 목적이었고, 기껏해야 게임 아이템 획득 수량 기록하는 프로그램이니..) 일단 MySQL 데..

C#] 제네릭(Generic) - 2

### 제네릭 ## 파생 제네릭 형식도 제네릭이 아닌 클래스처럼 파생 가능.제네릭 클래스를 기반으로 삼아 파생 클래스 정의 시, 기반 클래스의 형식 매개변수를 열린 채로 남겨두는 것이 가능함. 12class Stack {}class SpecialStack : Stack {}cs 구체적 형식을 지정해 제네릭 형식 매개변수를 닫을 수도 있으며, 파생 형식에서 새로운 형식 매개변수를 도입할 수도 있음. 1234class IntStack : Stack {} class List {}class KeyedList : List {}cs 엄밀히 말해 한 파생 형식의 모든 형식 매개변수는 새로 도입된 것임. ## 자신을 참조하는 제네릭 형식 파생 형식이 기반 형식의 형식 매개변수를 닫을 때, 파생 형식 자신을 형식 인수로..

C#] Delegate(델리게이트, 대리자) - 1

### Delegate Delegate type은 그 형식의 인스턴스를 호출할 수 있는 종류의 메서드를 정의함.좀 더 구체적으로 이 형식은 그런 메서드의 반환 형식과 매개변수 형식들을 정의함.delegate는 전통적인 프로그래밍 언어에서의 callback과 유사한 측면이 있다. 일반적으로 이 callback은 C의 함수 포인터 같은 지연 호출 수단을 일컫는 용어로 쓰임. 반환 형식이 int, int 형식의 매개변수 하나를 받는 모든 메서드에 사용 가능한 delegate type 정의한 예. delegate int Transformer (int x); class Test { static void Main() { Transformer t = Square; int result = t(3); Console.Wr..

C#] 구조체(Structure)

### 구조체(Structure) 참조 형식이 클래스와는 달리 구조체는 값 형식임.구조체는 상속을 지원하지 않음.(System.ValueType을 암묵적으로 상속한다는 점은 제외)구조체는 클래스가 지원하는 요소 중,매개 변수가 없는 생성자, 필드 초기화, 종료자, 가상 멤버와 보호된 멤버를 제외한 모든 요소를 지원함. 구조체는 값 형식 의미론이 바람직한 경우에 적합하며, 일례로 커스텀 수치 형식이 있음.수치 형식에서는 배정 시 참조가 아니라 값을 복사하는 것이 더 자연스럽기 때문임.구조체는 값 형식이기 때문에, 인스턴스화 시 힙에 객체를 할당할 필요가 없어 한 형식의 인스턴스를 많이 생성하는 경우 구조체가 더 효율적일 수 있음. ## 구조체 생성 의미론 구조체에는 매개 변수 없는 생성자가 암묵적으로 존재..

728x90