2009년 11월 22일 일요일
피칸파이
2009년 11월 20일 금요일
ELECOM EHP-IN210WH
기본사양 |
|
케이블 길이 |
1.2m |
자체 볼륨 조절 |
미지원 |
색상 |
화이트,레드,블랙 |
무게 |
5g(코드 제외) |
세부사양 |
|
유닛 크기 |
10mm |
임피던스 |
16Ω |
감도 |
97dB/1mW |
주파수 응답 |
20Hz ~ 20kHz |
최대 입력 |
60mW(JEITA 규격) |
기타 |
밀폐형 고정 실리콘 고무(S,M,L의 3 사이즈 부속) |
단자 |
|
커넥터 |
3.5mm 크롬 도금 스테레오 미니 플러그 |
2009년 11월 19일 목요일
MacBook MC240KH/A
역시 패키징에도 많은 신경을 썼다.
역시 벌레먹은 사과가...
뚜껑 연 모습
부족하면서도 불편해 보이는 자판... 디자인을 위해서라면...
2009년 11월 12일 목요일
[.NET Compact Framework-C#] Reflection을 이용한 인스턴스 생성하기
Reflection 을 이용하여 인스턴스를 생성하는 방법으로 .NET Framework 에서도 공통적으로 사용할 수 있을 것으로 예상되지만 일단 .NET Compact Framework 에서 확인한 사항이다.
1. 일반적인 인스턴스 생성
- 클래스 이름 문자열로 A라는 클래스의 인스턴스를 생성하려면 다음과 같이 한다.(GetType 내의 인자는 클래스의 full path를 사용해야 한다.)
System.Type type = System.Type.GetType("alpha.A");
A a = (A)System.Activator.CreateInstance(type);
- 위 구문은 다음과 같은 작동을 한다.
A a = new A();
2. 외부 DLL 내의 인스턴스 생성
- 클래스 이름 문자열로 import.dll 이라는 외부 DLL내의 B라는 클래스의 인스턴스를 생성하려면 다음과 같이 한다.(GetType 내의 인자는 클래스의 full path를 사용해야 하며 import.dll은 실행파일과 같은 경로에 있다고 가정한다.)
System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom(@".\import.dll");
System.Type type = assembly.GetType("alpha.B");
B b = (B)System.Activator.CreateInstance(type);
3. 활용
아래 예제는 만들어진 Base 클래스를 상속받은 실행파일 내의 R001 클래스와 Import.dll 내의 R002 클래스를 생성하고 실행하는 예제이다. 자세한 내용은 첨부된 소스를 참고한다.
예제소스 다운로드
private void buttonRun_Click(object sender, EventArgs e)
{
textBoxResult.Text = "";
// 클래스 이름이 입력되었는지 검사한다.
if (textBoxClassName.Text.Length == 0)
{
MessageBox.Show("Must input class name!", "Notice", MessageBoxButtons.OK,MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
return;
}
Type type = null;
try
{
// Import.dll을 로드한다.
Assembly assembly = Assembly.LoadFrom(@".\Import.dll");
// 로딩된 DLL에서 클래스 타입을 얻는다.
type = assembly.GetType("Kr.Vsys.Test.Reflection." + textBoxClassName.Text);
// 클래스가 없을 경우 예외를 발생시킨다.
if (type == null)
{
throw new Exception();
}
}
catch (Exception)
{
// DLL이 없거나 DLL내에 원하는 클래스가 없을 경우 실행파일에서 클래스 타입을 얻는다.
type = Type.GetType("Kr.Vsys.Test.Reflection." + textBoxClassName.Text);
}
// 실행파일과 DLL에 모두 클래스가 없을 경우 메시지 박스를 출력한다.
if (type == null)
{
MessageBox.Show("Can't find class : " + textBoxClassName.Text, "Notice", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
return;
}
// 얻은 클래스 타입의 인스턴스를 생성한다.
Base instance = (Base)System.Activator.CreateInstance(type);
// 화면에 출력한다.
string result = "";
result += "- Class Name(Full Name)\r\n";
result += " " + instance.GetType().FullName + "\r\n";
result += "- Result\r\n";
result += " " + instance.run() + "\r\n";
textBoxResult.Text = result;
}