본문 바로가기

[2]SW Development Note/[2-1.2]C#24

처리되지 않은 'System.InvalidCastException' 형식의 예외가 발생했습니다. (int)=>Convert.ToInt32 [bug] string(문자열) 에서 Int(정수) 형 변환 오류. ( 'System.InvalidCastException') (int) HbjGridView.GetRowCellValue(HbjGridView.FocusedRowHandle, "ID"))​ 수정 코드 Convert.ToInt32(HbjGridView.GetRowCellValue(HbjGridView.FocusedRowHandle, "ID")) 예제 코드 string s1 = "1234"; string s2 = "1234.65"; string s3 = null; string s4 = "123456789123456789123456789123456789123456789"; int result; bool success; Int32.parse(문자.. 2022. 5. 6.
CLR : Common Language Runtime(공통 언어 실행 환경) CLR : Common Language Runtime(공통 언어 실행 환경) CLR은 마이크로소프트가 Common Language Infrastructure (CLI) 표준을 토대로 구현한 것이며 .NET Framework에 있는 가상 머신 컴포넌트이다. .NET 환경에서 컴파일은 CLR 컴파일을 의미한다. JIT (Just In Time) 컴파일 : 실행에 필요한 코드를 실행할 때마다 실시간으로 네이티브 코드로 번역해서 사용한다. .NET 컴파일러(== CLR 컴파일러)는 .NET 소스 코드를 읽어서 Intermediate Language라는 중간 언어로 된 파일을 만들어 낸다. 사용자가 이 파일을 시작하면 JIT가 Intermediate Language를 읽어들여서 네이티브 코드(원시 기계어)로 변역.. 2021. 10. 7.
파일은 인터넷 또는 제한 영역에 있거나 파일에 웹 표시가 있으므로 처리할 수 없습니다 Git 이나, 웹에서 소스를 다운로드 받고 빌드할경우 종종 'xxx. resx 파일은 인터넷 또는 제한 영역에 있거나 파일에 웹 표시가 있으므로 처리할 수 없습니다" 오류가 발생하면서 빌드가 안되는 경우가 있다. 원인은 인터넷에서 파일을 개별적으로 또는 .zip 파일 또는 이와 유사한 파일로 다운로드한 경우 인터넷 영역에서 가져온 것으로 플래그가 지정되어 파일을 잠근다. 많은 프로그램에서 이를 콘텐츠를 신뢰할 수 없다는 표시로 사용 하기 때문이다. 해결방법. 파워셀? 안된다. powershell을 열고 "dir -Path [디렉터리 경로] -Recurse | Unblock-File"을 실행합니다. 솔루션 폴더에서 해당 resx 파일을 찾는다. resx 파일을 마우스 오른쪽 버튼으로 클릭하고 속성을 열고 .. 2021. 10. 7.
비동기/병렬 프로 그래밍 https://www.evernote.com/l/ATix2bfXKbya-t-fSYIsxQ6aFdWbSEdI4XQ/ 비동기 병렬 프로그래밍 비동기/병렬 프로 그래밍 응용 프로그램의 응답성을 확보하는 데 비동기 처리는 필수적이라고 할 수 있습니다, 그리고 멀티CPU의 성능을 끌어올리는 데도 비동기 처리와 병렬 처리는 없어서는 www.evernote.com 2021. 10. 6.
C# 값형 과 참조형 https://www.evernote.com/l/AThmiAQWzWJAoDyIlpeQVKLs7WEwSFjmwAI/ 1.3 값형과 참조형 값형 과 참조형 C#에서 다루는 형에는 값형(Value Type)과 참조형(Reference Type)으로 두 가지가 있습니다. C#에속한 형인 int나 string 뿐만 아니라 .NET 프레임워크에 정의돼 있는 사용자 지정 클래스나 구 www.evernote.com 2021. 9. 16.
NET Framework의 해시함수 NET Framework의 모든 해시함수들은 기본적으로 HashAlgorithm 클래스로부터 파생된다. 예를 들어, MD5,SHA1,SHA256,SHA512 등의 해시 클래스들은 모두 HashAlgorithm으로부터 파생된 서브클래스들이다. https://referencesource.microsoft.com/#mscorlib/system/security/cryptography/HashAlgorithmName.cs Reference Source referencesource.microsoft.com https://docs.microsoft.com/ko-kr/dotnet/api/system.security.cryptography.sha256?view=net-5.0 SHA256 클래스 (System.Securi.. 2021. 8. 26.
시간은 없고 타이머의 종류는 많다 시간은 없고 타이머의 종류는 많다 FCL은 다양한 형태의 타이머들을 제공하고 있지만 불행히도 대부분의 개발자들이 이 타이머들의 특성을 정확히 알지 못하는 것 같아 이에 대해서 먼저 설명을 해볼까 한다. System.Threading의 Timer 클래스: 더보기 이 타이머는 앞에 절에서 살펴본 타이머다. 스레드풀 내의 스레드를 이용하여 백그라운드 태스크를 주기적으로 수행하려는 경우에 가장 적절한 타이머다. System.Windows . Forms의 Timer 클래스: 더보기 이 클래스로 타이머 인스턴스를 생성하면 생성자를 호출한 스레드와 연관된 타이머를 생성할 것을 운영체제에 요청한다.(Win32의SetTimer 함수 참고). 타이머가 시작되면 윈도우 운영체제는 타이머 메시지 (WMTIMER)를 해당 스레.. 2021. 5. 14.
단위 변환 Class (C#) private int mmToPixel(float mm) { return (int)Math.Round(mm /0.254 ); } private int PixelToCentimeter(int pixel) { return (int)(pixel * 2.54 / 96); } private int PtToCentimeter(int pt) { return (int)((double)pt / 3.0); } private int CentimeterToPt(int cm) { return (int)((double)cm * 3.0); } private static int mmToTwip(int mmValue) { return (int)(mmValue * 56.6929); } private static int twipToMm(.. 2021. 5. 11.
스레드의 파라미터 전달 class Program { static void Main(string[] args) { var sample = new ThreadSample(10); var threadOne = new Thread(sample.CountNumbers); threadOne.Name = "ThreadOne"; threadOne.Start(); threadOne.Join(); Console.WriteLine("--------------------------"); var threadTwo = new Thread(Count); threadTwo.Name = "ThreadTwo"; threadTwo.Start(8); threadTwo.Join(); Console.WriteLine("--------------------------.. 2021. 5. 8.
SqlLite C.R.U.D Class using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Common; using System.Data.SQLite; using System.Diagnostics; using System.Globalization; using System.IO; using System.Reflection; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Windows.Forms; namespace Systems.D.. 2021. 5. 8.