본문 바로가기
반응형

c#128

C# 컬렉션 - System.Collections.Hashtable Hashtable 컬렉션은 값(value)뿐만 아니라 해시에 사용되는 키(Key)가 추가되어 빠른 검색 속도를 자랑한다. 따라서 검색 속도의 중요도에 따라 ArrayList 또는 Hashtable을 선택할지 결정한다. Hashtable의 검색속도가 ArrayList에 비해 어떻게 빨라질 수 있는지 2개의 컬렉션에서 함께 제공하는 Remove 메서드를 예로 들어보자. ArrayList.Remove의 경우 0번째 요소의 값과 Remove 인자의 값을 비교한다. 같으면 삭제하고 return 문을 수행한다. 1번째 단계에서 값을 찾기 못하면 그다음 요소의 값과 비교한다. 값이 같으면 삭제하고 return 문을 수행한다. 값을 찾을 때까지 위의 동작을 반복한다. 값이 ArrayList에 존재하지 않는 경우 전체 .. 2023. 5. 23.
C# 컬렉션 - System.Collections.ArrayList ArrayList에 대해서 ArrayList는 object 타입 및 그와 형변환할 수 있는 모든 타입을 인자로 받아 컬렉션에 추가/삭제/변경/조회할 수 있는 기능을 구현한 타입이다. 간단하게 생각해서 크기가 자유롭게 변할 수 있는 배열이라고 보면 된다. ArrayList는 object를 인자로 갖기 때문에 닷넷의 모든 타입을 담을 수 있다는 장점이 있지만 반대로 이로 인해 박싱이 발생한다는 단점이 있다. 따라서 System.ValueType을 상속받는 값 형식을 위한 컬렉션으로는 적당하지 않다. 이를 해결하기 위해서는 닷넷 2.0부터 지원되는 제네릭(Generic)이 적용된 List 타입을 사용하는 것이 권장된다. (ArrayList는 deprecated되었다. 특수한 경우가 아니라면 List를 사용하도.. 2023. 5. 22.
P/Invoke란 무엇인가? P/Invoke란? C# / ,NET에서 Native DLL (Unmanaged DLL)에 있는 함수를 호출하는 것을 Plaform Invoke 혹은 줄여서 P/Invoke라고 부른다. 예를 들어, C#에서 윈도우즈 운영체제의 Win32 API를 호출한다던가, C/C++로 작성된 Native DLL의 함수를 호출할 필요가 있을때, P/Invoke 방식을 사용한다. P/Invoke를 사용하기 위해서는 System.Runtime.InteropServices 네임스페이스에 있는 DllImport를 사용하여 어떤 DLL에서 함수를 가져올지를 지정한다. 해당 함수의 원형을 C# 메서드 원형으로 정의해 준다. 이때 C# 메서드는 static extern으로 지정한다. 예제 코드 using System; using .. 2023. 5. 19.
Blazor에서 Timepicker UI 생성하기 날짜를 입력받는 Timepicker 생성하기 웹 페이지를 작성하다 보면 날짜를 입력받고 세팅해야 하는 상황이 생기기 마련입니다. 이때 Bootstrap에서 지원하는 datetime-local을 사용하면 간단하게 날짜를 입력받고 세팅하는 게 가능합니다. 예제 코드 @{ Show a Date and Time Control Birthday (date and time): Note: type="datetime-local" is not supported in Internet Explorer 11 or prior Safari 14.1. } @code // 초기화하지 않으면 UI에서 시간을 변경해도 정상적으로 작동하지 않는다. 꼭 초기화 해주자. private DateTime birthdaytime = DateTime.. 2023. 5. 18.
Razor vs Blazor 둘은 어떻게 다른가? ASP.NET 환경에서 Razor와 Blazor Razor Razor는 HTML와 임베디드를 사용해서 웹 페이지를 동적으로 생성하는 걸 가능하게 하는 Server-side 마크업 언어(Markup Syntax)다. Razor는 Razor 페이지를 통해서 웹페이지를 생성한다. 웹 페이지 템플릿 파일은 C#과 VB으로 작성된다. VB코드로 작성된 razor 페이지의 확장자 .vbhtml C# 코드로 작성된 razor 페이지의 확장자 .cshtml Blazor Blazor는 .NET 프로그래밍 언어를 사용하여 클라이언트 사이드 반응형 애플리케이션을 빌드할 수 있도록 지원하는 웹 애플리케이션 프레임워크다. Blazor로 빌드된 single-page application(SPA)은 웹 브라우저 안에서 실행된다. .. 2023. 5. 17.
Blazor 사용을 결정한 이유 Blazor란? 웹 브라우저에서 실행되는 .NET 웹 프레임워크이다. .NET에서 제공하는 것과 동일한 일관성, 안정성 및 생산성으로 풀스택 앱 개발을 번들로 제공한다. WebAssembly를 통해 구현되기 때문에 완전히 오픈소스로 제공된다. Blazor를 사용해서 풀스택 웹 앱을 만들 때의 장점 Blazor는 Vue나 React와 같이 Single-Page-Application(SPA)의 이점을 동일하게 가지고 있다. 게다가 클라사이드와 서버사이드의 코딩을 동일하게 .NET 기술을 통해서 구현이 가능하다. 즉 동일한 클래스들을 양쪽에서 재사용이 가능하다. 브라우저에서 .NET 코드를 실행할 수 있다. JavaScript보다 빠르다. 클라이언트와 서버의 코드 공유가 가능하다. 오프라인에서 실행이 가능하다.. 2023. 5. 16.