일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- ListView
- File
- tls
- log
- windows
- Visual Studio
- mysql
- coding-test
- commit
- programmers
- Microsoft
- nullable
- dotNET
- Process
- algorithm
- csharp
- IValueConverter
- string
- .net
- WPF
- logging
- Coding
- git
- C#
- chashtag
- 코딩테스트
- windows10
- Github
- convert
- Binding
- Today
- Total
목록C# (71)
CHashtag
기본적으로 .net framework 4.0에서는 tls 1.2가 지원되지 않아 https요청을 보내면 "기본 연결이 닫혔습니다 보내기에서 예기치 않은 오류가 발생했습니다." 라는 에러가 발생합니다. 이때 .net framework 버전을 4.5.2로 올려도 되지만 버전을 올릴 수 없을 경우 해결방법을 알려드리도록 하겠습니다. 아래의 함수를 선언한 뒤 프로그램이 시작 시 한번 호출해주면 해결됩니다. public void SetTls() { bool platformSupportsTls12 = false; foreach (SecurityProtocolType protocol in Enum.GetValues(typeof(SecurityProtocolType))) { if (protocol.GetHashCode..
안녕하세요. 오늘은 C# 프로젝트를 빌드하면, 함께 나오는 pdb파일에 대해 알아볼까 합니다. PDB파일이란? .pdb파일은 Program DataBase의 약자입니다. C#프로젝트를 빌드하면, exe 혹은 dll파일과 함께 pdb파일도 함께 나오는 것을 종종 확인하셨을 것입니다. pdb파일은 프로그램을 디버깅할 때 필요한 파일입니다. pdb파일 속에는 디버깅에 필요한 정보들이 포함되어 있습니다. 이 말을 뒤집으면 프로그램을 배포할 때에는 pdb파일이 있어선 안 되겠죠. 그래서 혹시 배포 패키지에 pdb파일이 섞여 들어가는 것을 막기 위해 빌드 옵션을 설정할 수가 있습니다. 그럼 지금부터 pdb파일을 나오게 하는 법, 안 나오게 하는법에 대해 알아보도록 하겠습니다. PDB파일 안나오게 하는 법 1. 프로..
안녕하세요. 오늘은 C#개발을 할 때에 지켜야 할 규칙에 대해 알려드리려 합니다. 오늘 알려드릴 내용은 "권장사항" 입니다. 아래 코딩 규칙이 회사, 팀에서 사용하고 코딩 규칙과 다르다면 따르지 않는것을 추천합니다. 코딩 규칙이 존재하는 이유는 여러 사람이 일관성있는 코드를 작성할 수 있게 돕고, 그로인해 코드 가독성을 높이기 위함임을 꼭 기억하기시 바랍니다. 일관성 있는 코드 작성 -> 가독성 올라감 -> 코드 리딩 및 이해가 빠름 -> 개발시간 단축 및 리팩토링 용이 (아래 몇몇 규칙중에서는 성능을 높여주는 규칙도 포함되어 있습니다.) 오늘 게시글은 마이크로소프트 공식 문서를 참고하여 예제를 추가한 것입니다. 관련해 더 자세하고 정확한 내용은 원문을 참고해주시기 바랍니다. (docs.microsoft..
WPF 프로그래밍을 하다 보면 Control을 적절히 분리하여 다른 Control들을 배치하여야 합니다. 이때 자주 사용하는 Control이 Grid입니다. 하지만 분리할 때에 단순히 Width, Height, Margin, Padding만을 사용한다면 안됩니다. 프로그램의 크기가 달라졌을 때나 변경사항이 생길 때 구조가 잡혀있지 않다면 굉장히 난감해지기 때문입니다. (이 때문에 저는 ToolBox에서 Control들을 직접 Drag&Drop하여 Control들을 배치하지 않습니다.) 한 가지 예를 들어보겠습니다. 다음과 같은 프로그램이 있습니다. 해당 프로그램의 디자이너 코드는 다음과 같습니다. . 이때 이 Window의 크기를 변경하거나 사용자가 임의로 크기를 변경하였을 때 아래 사진처럼 구조가 틀어..
안녕하세요. 오늘은 WPF MVVM패턴에서 TextBox에서 특정 버튼을 눌렀을 때 ViewModel의 함수로 연결하는 방법에 대해 알아보도록 하겠습니다. 우선 View입니다. 여기서 중요하게 보여야 할 부분은 두 가지입니다. 우선 첫 번째는 아래 코드입니다. Text="{Binding Id, UpdateSourceTrigger=PropertyChanged}" UpdateSourceTrigger의 자세한 설명은 chashtag.tistory.com/1 를 참고하시면 됩니다. (간략하게 설명드리자면 UpdateSourceTrigger=PropertyChanged가 없으면 엔터를 눌렀을 때 텍스트가 비어있는 것처럼 보이게 됩니다.) 두 번째는 아래 코드입니다. KeyBinding은 특정 키가 눌렸을 때 Co..
안녕하세요. 오늘은 string을 enum으로 변환할 때, 대소문자 구분 없이 string을 enum으로 변환하는 방법에 대해 알아보도록 하겠습니다. 방법은 간단합니다. Enum.Parse의 인자 중 세 번째 인자인 ignoreCase를 사용하면 됩니다. (해당 인자를 사용하지 않으면 ArgumentException이 발생합니다.) enum Alphabet { A, B, C } class Program { public void Main() { Alphabet alphabet1 = (Alphabet)Enum.Parse(typeof(Alphabet), "a", true); // alphabet1 = Alphabet.A Alphabet alphabet2 = (Alphabet)Enum.Parse(typeof(A..
안녕하세요. 오늘은 enum 을 string으로 변환하거나, string, int를 enum로 변환하는 방법에 대해 알아보도록 하겠습니다. enum -> string enum Alphabet { A = 0, B = 1, C = 2, D = 3 } string EnumToString(Alphabet alphabet) { return alphabet.ToString(); } void Main() { Console.WriteLine(EnumToString(Alphabet.A)); // output : A } enum -> int enum Alphabet { A = 0, B = 1, C = 2, D = 3 } int EnumToInt(Alphabet alphabet) { return (int)alphabet; ..
안녕하세요. 오늘은 파일을 점유하되(Write), 다른 프로세스가 해당 파일을 읽을(Read) 수 있는 방법에 대해 알아보도록 하겠습니다. File.Open File.Open 함수는 최대 4개의 인자(Parameter)를 받도록 되어있습니다. 우선 인자에 대해 간략하게 설명해드리고, 해당 인자들을 혼합하여 파일을 여는 방법에 대하여 설명해 드리겠습니다. Arguments path 말 그대로 Open 할 파일의 경로입니다. fileMode Path의 파일을 가지고 할 행동을 나타냅니다. FileMode enum은 아래와 같습니다. [관련 링크] CreateNew 파일을 새로 만들지만, 이미 있으면 에러가 납니다. Create path에 파일을 새로 만들고, 해당 경로에 파일이 이미 존재한다면 덮어 씌웁니다..
안녕하세요. 오늘은 제가 게임 개발 공부를 하며 알게 된 내용을 공유할까 합니다. 저도 처음인지라 글이 두서없을 수 있는점 양해 바랍니다. 어떻게 코드를 보지? Unity를 설치한 후, Sample 프로젝트를 실행시켜 보았다. 하지만 그 어느 곳에서도 C# 코드를 찾을 수 없었다.. (ㅠㅠ) C# 코드를 찾기 위해 내가 떠난 여정은 다음과 같다. WPF의 Property Event처럼 UI와 Behind Code를 연결해주는 부분을 UI Element Inspector에서 찾을 수 없을까? 실패 Hierachy 창에 있지 않을까? X Edit -> Open C# Project 를 클릭하면 되지 않을까? 아무일도 일어나지 않는다. 사실 이게 정답이다. 아래 Project의 폴더 안에 있지 않을까? 있다! ..
안녕하세요. 오늘은 WPF에서 사용가능한 DispatherTimer 사용방법에 대해 알아보도록 하겠습니다. DispatherTimer은 정해진 Interval마다 Tick Event Listener함수를 호출해주는 기능을 가지고 있습니다. using System; using System.Windows.Threading; private void InitTimer() { DispatcherTimer timer = new DispatcherTimer(); // 1초 마다 Tick 됩니다. timer.Interval = TimeSpan.FromMilliseconds(1000); // Event 특성상 여러 이벤트를 등록시킬 수 있습니다. timer.Tick += Timer_Tick; timer.Tick += T..