티스토리 뷰
13년 8월 기준.
C# 콘솔창
프로젝트 속성-응용 프로그램-출력형식-콘솔 어플리케이션
종료
Application.Exit();
Environment.Exit(0);
System.Diagnostics.Process.GetCurrentProcess().Kill();
창이 하나이거나 메인폼이 중심이 되는 경우
this.Close();
WPF 종료
Application.Current.Shutdown();
MemoryStream string 변환
byte[] byteArray = Encoding.ASCII.GetBytes("test");
MemoryStream stream = new MemoryStream( byteArray );
JSON 파싱시
타입선언한 구조체에 [Serializable] 명시해줘야 한다.
// 명시하지 않을경우 에러
스택 영역에 값을 저장하는 밸류 타입
int, float, long, struct
힙 영역에 값을 저장하는 레퍼런스 타입
string, class
박싱 - 스택에서 힙으로 형변환
언박싱 힙에서 스택으로 형변환
배열 관리
Array : 아이템들의 크기가 일정하고, 순서가 변할 일이 없다면 일반 배열을 사용하는 것이 가장 빠르게 동작합니다.
ArrayList : 아이템들의 크기가 자주 변하고 순서도 자주 바뀌는데다, 모든 아이템이 레퍼런스형이면 ArrayList로 간편하게 관리할 수 있습니다.
List<T> : ArrayList인데 저장하는 데이터 형식이 밸류 타입이면, ArrayList 대신 제네릭 List를 사용해야 박싱이 일어나지 않습니다.
Hashtable : 키와 값으로 구성된 사전류의 데이터를 관리할 때 해시 테이블을 사용하면 편리합니다.
Dictionary<K, V> : 해시 테이블과 동일한 기능을 수행하나 데이터의 형식이 밸류타입인 경우 제네릭 Dictionary를 사용하면 박싱 현상을 방지하게 됩니다.
public bool Hit
{
get { return m_bHit; }
set { m_bHit = value; }
}
sBall.Hit = false;
// 이렇게 변수처럼 사용가능
// Scroll되면 포커스 이동
private void tb_log_TextChanged(object sender, TextChangedEventArgs e)
{
tb_log.ScrollToEnd();
}
partial 선언에는 서로 다른 기본 클래스를 지정할 수 없습니다.
// obj 폴더의 해당파일.g.cs 파일에서 UserControl을 상속 받고자 하는 클래스로 변경하면 빌드 된다
C# WPF xaml 창 속성의 WindowStartupLocation의 CenterOwner
public static bool? ShowDialog(this Window window, Window opener)
{
window.Owner = opener;
return window.ShowDialog();
}
C# 현재 디렉토리 경로 가져오기
System.IO.Directory.GetCurrentDirectory()
System.Environment.CurrentDirectory
ex)
String currentPath = Environment.CurrentDirectory;
Console.WriteLine(currentPath);
Encoding euckrEncode = Encoding.GetEncoding("euc-kr");
StreamReader sr = new StreamReader(currentPath + "\\test.txt", euckrEncode);
Alt+shift+f10
ctrl+ .
// 해당 클래스가 속한 dll이 참조 되어있을때
CheckBox 관련 이벤트
Checked="cb_cam_Checked" Unchecked="cb_cam_Unchecked"
// string to int
int i = int.Parse(str)
int num = Int32.Parse(str);
C# 줄바꿈
\n 안먹힘
textBox2.Text += urlList[i] + Environment.NewLine;
C# webbrowser scrollbar disable
body {
overflow: hidden;
}
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
오류 CS0051: 일관성 없는 액세스 가능성: ... 매개 변수 형식이 ... 메서드보다 액세스하기 어렵습니다
// 사용할 클래스에 public 선언
resxtoresources.exe crash
It might that when you create a new project in .NET Framework 3.5, the references are not including Microsoft.CSharp.dll, but .NET Framework 4’s project is including it. So when you change the Framework target (from 4 to 3.5), the program will show some warns!
// .NET Framework 타겟을 변경
MSBuildTaskHost.exe stopped
Its a bug in .Net 4.0. Workaround - Set 'DisableOutOfProcTaskHost=true' in your environment variables.
System.Net // 네임스페이스
WebClient WClient = new WebClient();
WClient.DownloadFile("url", "route");
// 다운로드 함수
System.Net.WebException: 요청이 중단되었습니다. SSL/TLS 보안 채널을 만들 수 없습니다.
Net Framework가 버전이 낮아, TLS 최신을 지원하지 않아 발생함. 사이트가 TLS 1.1이나 TLS 1.2 지원일 경우 발생.
최소 .Net Framework 4.5 이상 (TLS 기본값 아님). 권장 .Net Framwork 4.6 이상 (TLS 1.2 기본값 지원) 설치
Newtonsoft.Json.dll
// WinAPI, MFC, C# 관련 JSON 파서에 통용되는 공통 라이브러리.
'Study' 카테고리의 다른 글
DBeaver(디비버) Google Bigquery(구글 빅쿼리) Connect(접속) (1) | 2024.02.03 |
---|---|
Google Search Console(구글 서치 콘솔) 관련 (0) | 2024.02.03 |
English(영문) Font(폰트) Korean(한글) Font(폰트) designation(지정) (1) | 2024.01.27 |
RBT(Ring Back Tone, 링백톤, 컬러링) Shell Script(쉘 스크립트) (0) | 2024.01.27 |
logwatch(로그와치) 관련 (0) | 2024.01.27 |