delegate 요약 DarkKaiser, 2010년 3월 31일2023년 9월 5일 – 델리게이트를 통해 특정 작업을 캡슐화할 수 있다. – 델리게이트 인스턴스에 어떤 메서드를 사용할 수 있는지는 델리게이트 타입의 선언에 따라 다르다. – 델리게이트 인스턴스 생성을 위해서는 호출할 메서드와 (인스턴스 메서드의 경우) 메서드를 호출할 대상이 필요하다. – 델리게이트 인스턴스는 불변성(immutable)을 갖는다. 한번 생성되고 나면 변경될 수 없다. 이렇기 때문에 델리게이트를 다른 델리게이트와 합친다거나 Continue Reading
.NET 어셈블리를 수정하여 크랙하는 방법 DarkKaiser, 2010년 3월 25일2023년 9월 6일 1. 크랙하려는 어셈블리 파일을 ildasm으로 열어서 덤프를 뜬다. 2. 저장된 파일을 열어서 어셈블리를 수정한다. 3. 수정된 어셈블리를 다시 실행 파일로 컴파일한다. ilasm /exe hoons.il /output=HOONS.exe Continue Reading
Effective C# 강력한 C#코드를 구현하는 개빌지침 50가지 요약 DarkKaiser, 2010년 3월 8일2023년 9월 6일 1. 데이터 멤버 대신에 항상 프로퍼티를 사용하라. 2. const(컴파일 타임 상수)보다는 readonly(런타임 상수)가 좋다. 컴파일타임 상수는 런타임 상수에 비해 다소 빠르지만 유연성이 떨어진다. 컴파일 타임 상수는 수행성능이 매우 중요하고, 상수의 값이 절대로 바뀌지 않는 경우에 한해서만 사용하는 것이 좋다. 런타임 상수와 컴파일타임 상수의 근본적인 차이는 그 값들이 어떤 방식으로 평가되는가에 Continue Reading
동적으로 폰트 파일 읽어서 컨트롤에 적용하기 DarkKaiser, 2010년 3월 6일2023년 9월 6일 PrivateFontCollection fonts; FontFamily family = LoadFontFamily(@"F:\azuki.ttf", out fonts); theFont = new Font(family, 20.0f); // when done: theFont.Dispose(); family.Dispose(); family.Dispose(); ///////////////////////////////////////////////////////////////////////////////////////// public static FontFamily LoadFontFamily(Stream stream, out PrivateFontCollection fontCollection) { var buffer = new byte[stream.Length]; stream.Read(buffer, 0, buffer.Length); return LoadFontFamily(buffer, out fontCollection); } //public static unsafe FontFamily LoadFontFamilyUnsafe(byte[] buffer, out PrivateFontCollection Continue Reading
System.Configuration.Install 네임스페이스의 Installer 를 이용한 설치 프로젝트 작성 DarkKaiser, 2008년 4월 14일2023년 9월 6일 using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Configuration.Install; namespace WindowsApplication { [System.ComponentModel.RunInstaller(true)] public class SetupInstaller : System.Configuration.Install.Installer { public SetupInstaller() { this.AfterInstall += new InstallEventHandler(SetupInstaller_AfterInstall); this.BeforeInstall += new InstallEventHandler(SetupInstaller_BeforeInstall); this.Committed += new InstallEventHandler(SetupInstaller_Committed); } // 셋업 설치가 완료되었을 때 호출 void SetupInstaller_Committed(object sender, InstallEventArgs e) { // 아래 Continue Reading
웹에서 이미지 파일 다운로드 하는 방법 DarkKaiser, 2008년 4월 5일2023년 9월 4일 출처 : http://www.codeproject.com/KB/tips/cs_imagedownload.aspx using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Net; using System.Text; public class DownloadImage { private string imageUrl; private Bitmap bitmap; public DownloadImage(string imageUrl) { this.imageUrl = imageUrl; } public void Download() { try { WebClient client = new WebClient(); Stream stream = client.OpenRead(imageUrl); Continue Reading
한글이 섞인 string의 길이 구하기 DarkKaiser, 2008년 3월 19일2023년 9월 5일 private int GetStringLength(string str) { string s = str; byte[] temp = System.Text.Encoding.Default.GetBytes(s); return temp.Length; } Continue Reading
Converting Strings to Enum Values DarkKaiser, 2008년 1월 30일2023년 9월 5일 public enum DaysOfWeek { Sunday = 1, Monday = 2, Tuesday = 3, Wednesday = 4, Thursday = 5, Friday = 6, Saturday = 7 } string CurrentDayString = "Sunday"; DaysOfWeek CurrentDay = DaysOfWeek.Monday; try { CurrentDay = (DaysOfWeek)Enum.Parse(typeof(DaysOfWeek), CurrentDayString); } catch { // Invalid enumeration value } switch (CurrentDay) Continue Reading
iTextSharp PDF 생성 라이브러리 DarkKaiser, 2008년 1월 28일2023년 9월 5일 PDF를 생성할 수 있는 라이브러리 iText의 .NET 버전… 홈페이지 : http://itextsharp.sourceforge.net/ 튜터리얼 : http://itextsharp.sourceforge.net/tutorial/index.html Continue Reading
Assertion Lister DarkKaiser, 2007년 7월 11일2023년 9월 5일 DefaultTraceListener이 클래스의 객체는 Trace와 Debug 클래스의 Listeners 컬렉션에 자동으로 추가되며, Visual Studio.NET의 출력 창 또는 메시지 상자에 메시지를 출력하는 기능을 수행한다. TextWriterTraceListener이 클래스의 객체는 Stream 클래스로부터 파생된 클래스에 메시지를 출력한다. 따라서 콘솔이나 파일로 메시지를 출력할 때 사용할 수 있다. EventLogTraceListener이 클래스의 객체에서는 윈도우즈 운영체제의 이벤트 로그로 메시지를 Continue Reading