본문 바로가기

728x90
반응형

프로그래밍&IT/C#

(30)
[Visual Studio] 파일 선택하면 솔루션 탐색기에서 자동 이동하는 설정 개발자마다 차이는 있다만, 내가 현재 작성하는 class , 파일의 위치를 솔루션 탐색기에서 바로 보는 게 필요한 개발자도 존재를 한다. 이에 기본 옵션은 꺼져있다만 아래의 위치로 이동해서 설정을 켜 두면 된다 도구 > 옵션 > 프로젝트 및 솔루션 > 일반 > "솔루션 탐색기에서 활성화된 항목 추적" 을 체크하면 된다. 기본적으로 꺼져있기에 사용하는 사람이 적을 수는 있겠다만 알아두면 간혹 유용할 때가 있는 옵션이다.
[C#] ServiceController 클래스 관련해서 ServiceController네임 스페이스 : System.ServiceProcess (System.ServiceProcess.dll 임포트해야) 개인적으로 만드는 프로그램 중, 필수적인 서비스 (Database 등)가 실행중인지 아닌지 확인할때까 있습니다.이럴때 해당 서비스를 연결하거나 서비스 관련정보를 가져올때ServiceController라는 클래스가 존재한다는 걸 알게되었습니다. 일단 msdn의 내용을 일부 가져왔습니다. (링크) 속성 이름 내용 CanPauseAndContinue 서비스를 일시 중지했다가 다시 시작할 수 있는지를 나타내는 값을 가져옵니다. CanShutdown 시스템을 종료할 때 서비스에 알릴지를 나타내는 값을 가져옵니다. CanStop 시작한 서비스를 중지할 수 있는지의 여부..
[.Net C#] 열거형식, enum - 여러 상수 모아둘때 등 열거형 , enum : 여러 상수들을 정리및 모아둘때 지금 자바 웹 프로그래밍을 배우고 있는 와중에 아무래도 제 주력인 C#을 다시금 보고있습니다. Ex) 게임개발시 게임 캐릭터의 직업. 클래스를 관리하고자할때? // enum 타입 정의namespace ConEx08 {class Program {enum enmCharacter_class {FIGHTER , // 0부터 시작값을 가진다CLERIC ,ELF ,DWARF ,MAGIC_USER ,THIEF = 200 // 필요하면 상수별로 값을 다르게 지정할수도 있다} static void Main(string[] args) { Console.WriteLine("Fighter의 enum 값: " + (int)enmCharacter_class.FIGHTER);C..
[.Net C#] 올림, 내림, 반올림 (Ceiling, Truncate, Round) 올림, 내림, 반올림 (Ceiling, Truncate, Round) 개인적으로 프로그램을 만들다가 필요해서...System.Math 클래스에 포함된 함수들입니다. - 올림 : Math.Ceiling(double값)- 내림 : Math.Truncate(double값)- 반올림 : Math.Round(double값 [, 자릿수]) double n1 = 2.55d;double n2 = 2.44d; Console.WriteLine("Ceiling: n1= " + Math.Ceiling(n1) + ", n2= " + Math.Ceiling(n2)); Console.WriteLine("Truncate: n1= " + Math.Truncate(n1) + ", n2= " + Math.Truncate(n2)); // ..
[.Net C#] Datagridview에서 문자열 -> 숫자열 정렬하기 Datagridview 소트할때, 숫자값으로 정렬하기 Visual Studio에서 기본 제공하는 DataGridView에서는 헤더를 클릭해서 정렬시기본정렬은 문자열기준으로 됩니다. (아래는 제가 개인적으로 만드는 프로그램입니다...)아래는 주식수헤더를 가지고 정렬할때,기본적인 정렬 기준은 문자열이다보니 아래처럼 정렬이 되는데요. [기본 오름차순 & 내림차순한 결과값] 1. DataGridView에서 숫자값 비교하지만, 필요할때는 숫자값을 비교해서 정렬할때가 필요할텐데요.DataGridView의 이벤트인 SortCompare를 등록후 아래처럼 코딩하면 숫자값정렬이 가능합니다. private void dataGridView_SortCompare(object sender, DataGridViewSortComp..
[.Net C#] 확장메서드 (extension method) .Net C# - 확장메서드(Extension method)를 사용해보자. .Net 3.5버전부터 새로 추가된 기능입니다. 기존에 사용되거나 만들어진 클래스, 구조체, 인터페이스 구현 혹은 타입을 직접 변경하지않고 기능을 확장해 사용하는 방법입니다. Int같은 데이터타입이나 만들어진 Class에도 적용이 가능합니다. 몇가지 알아야 할 점들이 있습니다.* 확장메서드는 정적 클래스의 멤버로 정의해야한다.* 확장메서드의 첫번째 매개변수는 this 키워드를 한정자로 써야한다 (그리고 첫번째만)Ex) static class TestExtension {public static void DisplayMethod(this object obj) { ... }...}* 현재 메모리상에 존재하는 객체의 인스턴스를 통해 확장..
C# nullable타입 변수, 데이터 타입? 형식 & ?? 연산자 C# Nullable 타입변수 관련, [데이터타입?] 그리고 ?? 연산자 데이터타입? 선언 Ex) int? nInt , bool? nBool 등int, bool 등의 값 타입에 ?를 사용하여 null을 할당할 수 있게 해주며데이터타입 선언시 ? 사용은제네릭 System.Nulable 구조체 타입의 인스턴스를 생성하는 구문의 단축표기법입니다. 하단의 내용처럼 직접 Nullable을 사용할 수 있습니다. static void Main(string[] args) { //int n1 = null; 일반값 타입에 null을 할당할수없다 int? n2 = null; //bool b1 = null; 일반값 타입에 null을 할당할수없다 bool? b2 = null; //string? str = "Hello"; Con..
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..

반응형