티스토리 뷰

Study

C#(씨샵) 관련

메디츠 2024. 2. 2. 19:50
반응형

 

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 파서에 통용되는 공통 라이브러리.

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함