본문 바로가기

728x90
반응형

프로그래밍&IT

(155)
C# 암시적 타입변환 변수, var 타입 C# 암시적 타입변환, var 타입 지역변수의 타입 선언시 int, float, long, char 등으로 명시적으로 해오셨을텐데요. var를 이용하면 암시적으로 타입변환해서 사용할수있습니다.- 반복문이나 LINQ사용시 리턴되는 데이터타입관련없이 사용할수있다는 장점이 있으나 아래 서술되는 항목처럼 몇가지 제한 사항이 존재합니다. - private, public 등 클래스의 필드데이터로 쓸 수 없다- 반환값으로 쓸수없다- 매개변수타입으로 쓸 수 없다- null 초기화 못함. 컴파일러가 변수의 타입을 추정할 수 없으므로 단, 참조타입의 경우 할당 후 null할당은 가능- 형식 제약이 엄격한 타입이므로 원래 초기값과 다른 타입의 값을 가질 수 없다- nullable지정은 불가능 class Program { /..
System.Environment 클래스관련해서 [C#.Net System.Environment 클래스와 관련되어서] 저는 책을 훝어보면서 복습을 자주 하는 편입니다. (원한는 항목이나 내용을 잘 못 외우겠네요... ㅋㅋㅋ)이번에 다시금 책을 훝어보다가 System.Environment 클래스관련되어서 다시 보게 되었네요. 각자 PC의 기본적인 (정말 기본적인...) 정보를 이 Environment 클래스를 이용해서 살펴볼 수 있습니다. namespace ConEx06{ class Program { static void Main(string[] args) { //명령줄인자 조회하기 string[] thisArgs = Environment.GetCommandLineArgs(); foreach(string str in thisArgs) Console.Wr..
Thread 관련 간단 정리2. 멀티스레드 관련 - ThreadPool 이번엔 멀티스레드관련해서 ThreadPool부터 진행합니다. ThreadPool 이용한 비동기 메서드 호출 (System.Threading)비동기 메서드 작업을 위해서 QueueUserWorkItem 메서드를 사용합니다. namespace ConEx06{ class Program { static void Main(string[] args) { ThreadPool.QueueUserWorkItem(new WaitCallback(Async1)); //메인스레드 진행시키기. for(int n=0; n< 10; n++) { Thread.Sleep(1000); //계속되는 일이라는 가상을 위해서 Sleep을 Console.WriteLine("Main Thread..."); } ThreadPool.QueueUserW..
Thread 관련 간단 정리1. Thread / ThreadStart / ParameterizedThreadStart 개인적으로 중요하다고 생각되는 Thread 관련 처리입니다. Thread 클래스 (System.Threading)단순한 쓰레드 생성 및 실행입니다.여기서 ThreadStart는 파라메터를 전달하지 않습니다. using System.Threading;namespace ConEx06{ class Program { static void Main(string[] args) { Thread t1 = new Thread(new ThreadStart(Run)); //델리게이트 타입으로 전달 t1.Start(); } //실행할 함수 public static void Run() { for(int i=0; i Sum(100, 100, 100)); //람다식 이용해서 전달할수도... t2.Start(); } static v..
Params 한정자, 매개변수 배열 Param; 함수에 가변적인 매개변수 전달시 배열로 전달배열은 이미 아신다는 전제하에... - 동일한 타입을 갖는 여러개의 매개변수를한개의 매개변수 (즉 배열)로 전달하는 역할입니다. double값의 가변적 매개변수를 받아서 평균을 구하는 함수를 구현해보겠습니다. namespace ConEx01{ class Program { static void Main(string[] args) { Console.WriteLine("Avg is {0}", CalcAvg(1.0, 2.0, 3.6, 4.0)); Console.WriteLine("Avg is {0}", Math.Round(CalcAvg(3.0, 4.0, 5.5), 3));// 소수점 3자리까지만 결과를 보여주기위해서 Math.Round 함수를 사용 } st..
[C#] Cross Threading 처리 : InvokeRequired 속성 UI 그리고 Thread 프로그래밍하다 간혹 "크로스 스레드" 문제를 부딪치게 되면서, Invoke 및 Control.InvokeRequired 속성을 알아보게 되었습니다. 스레드들에 대해 약간 보자면... - Thread Affinity(스레드 선호도) : 기본적으로 그 UI 컨트롤을 생성한 쓰레드만이 해당 UI객체를 접속 가능. - UI 스레드 : UI 컨트롤을 생성하고 이 컨트롤의 윈도우 핸들을 소유한 스레드 - Worker 스레드 : 이런 UI 스레드를 갖지 않는 스레드 예제 using System.Threading; namespace FrmEx10 { public partial class Form1 : Form { private Thread m_thread = null; public Form1(..
C# & SQLite3 연결하기 - C# 프로젝트 생성부터 테스트완료 이번엔- C# 프로젝트 만들고 준비작업- test까지..의 단계로 완료하겠습니다. 2. C# 프로젝트만들고 준비작업간단한 테스트를 위한 콘솔프로젝트를 만듭니다.그리고 필요한 .dll들을 임포트시킵니다.솔루션 탐색기 -> 참조 -> 참조추가를 합니다. (저같은 경우는 필요한 dll파일들을 모두 새로 생성한 프로젝트에 카피를 했습니다.)가장 필요한 System.Data.SQLite 만 일단 추가를 했습니다. 그리고 만들어두었던 test.db도 해당 프로젝트에 복사를 했습니다.(기존에 생성한 db에 있는 테이블의 내용을 불러올것입니다.) 그런데, 제 PC가 64비트 윈도우여서 그런지 몰라도,추가로 설치해야 할 dll 인 ' SQLite.Interop.dll ' 참조추가를 할 수 없더군요...그리고 이 dll ..
C# & SQLite3 연결하기 - SQLite 다운 및 준비작업까지 개인적인? C#.net winform(윈폼) 프로그램을 만들려고하다가파일형 & 소형 database로 잘 알려진 SQLite를 알게되었습니다. 몇달전 한 번 C# & SQLite 연동에 실패후 잠시 손놓다가 이것저것 찾아보고 다시금 시도했습니다. 제가 정리한 부분이다보니 부족한 내용도 있겠고아래내용보다 더 좋은 내용의 내용도 많겠지만, 여튼 1. 필요한 파일들 download 및 설치2. C# 프로젝트 만들고 준비작업하기3. test소스만들기위의 3가지로 작업을 나눠보겠습니다. 1. 필요한 파일들 download 및 설치(1) System.Data.SQLite : dll 등 파일 다운로드 및 설치http://system.data.sqlite.org/index.html/doc/trunk/www/downlo..
System.Threading 네임 스페이스 및 Thread클래스 관련 평소 나름 중요한 개념이긴한데,사실 시스템 운영할때는 Timer빼고는 그렇게 많이는 안 쓰긴 했음. System.Threading 네임스페이스 타입 타입 내용 Interlocked 다수의 스레드가 공유하는 타입에 대해 원자적(atomic) 작업 지원 Monitor lock 및 wait / signal 스레드 동기화 객체 제공 C#의 lock 키워드는 내부적으로 Monitor 타입 사용 Mutex 이 동기화 요소는 AppDomain 경계를 넘어서 동기화 수행하는데 사용 ParameterizedThreadStart 이 대리자는 메소드가 다수의 매개변수를 갖는 메소드를 호출할수있게 해준다 Semaphore 리소스, 특정 리소스 타입에 동시 접근할 수 있는 스레드의 수를 제한할수있게 해줌 Thread CLR 내..
C# System.Collections 인터페이스 & 클래스들 System.Collections 의 인터페이스 System.Collections 인터페이스 내용 ICollection 컬렉션 클래스의 일반적인 특징(읽기전용, 스레드 안전 등) 정의 IComparer 두 객체를 비교하는데 이용 IDictionary 객체가 내용을 이름/값 쌍을 이용해 나타내는데 이용 IDictionaryEnumerator IDictionary를 지원하는 객체의 내용을 열거하는데 이용 IEnumerable 주어진 객체를 위한 IEnumerator 인터페이스를 반환 IEnumerator foreach스타일의 반복처리를 지원하기위해 사용 IHashCodeProvider 개인화된 해시 알고리즘을 이용해 구현하는 형식에 대한 해키코드 반환 IList 객체 리스트에서 항목을 추가하고 제거하고 색인..

반응형