닷넷 프레임워크/C#
-
C# 기초지식, 정보 정리 (면접 질문 대비, 꼭 알아야 하는 것)닷넷 프레임워크/C# 2023. 4. 11. 18:38
미루고 미루었던, ChatGPT를 활용하면 좀 더 수월하게 작성할 수 있게 되었으므로, C#에 대해서 꼭 알아야 할 기초 지식과 정보를 정리하였습니다. (링크드인 C# 테스트를 오늘 해 봤는데 영어 독해를 잘 못 했다고 해도, 그 용어들에 대해 알았다면 쉬운 문제인데 정답을 맞추지 못한 문제들이 많아서 나의 부족을 깨닫고 다시 공부하고 정리할 겸 쓰는 건 안 비밀) 1. C#이란 C#(C-Sharp)은 Microsoft에서 개발한 객체 지향 프로그래밍 언어입니다. Anders Hejlsberg가 설계한 이 언어는 C++와 Java와 유사한 구문을 가지고 있으며, 현대적인 프로그래밍 언어의 기능을 제공합니다. C#은 .NET Framework와 함께 사용되어 다양한 종류의 Windows 응용 프로그램 개발..
-
C# 시간 계산 두 번 째 (TimeSpan, DateTimeOffset)닷넷 프레임워크/C# 2023. 4. 6. 10:54
2020.09.11 - [C#] - C# 시간 계산 (DateTime Add함수 월, 일, 시, 분 더하기 빼기) DateTime 형식일 때, DateTime의 Add함수를 이용 한 날짜, 시간 계산은 이전 글을 참고한다. DateTime, TimeSpan, DateTimeOffset을 사용하여 시간 계산을 수행하는 방법은 다음과 같다. using System; namespace DateTimeExample { class Program { static void Main(string[] args) { // 현재 시간 구하기 DateTime currentTime = DateTime.Now; Console.WriteLine($"현재 시간: {currentTime}"); //////////////////////..
-
C# JSON 파일 읽기/쓰기 (Deserialize/Serialize)닷넷 프레임워크/C# 2023. 4. 4. 16:02
2018.10.26 - [C#] - C# Json 파싱하기 전, 비주얼스튜디오 프로젝트에 Newtonsoft.Json 설치하기 2018.10.31 - [C#] - C# JSON 파싱하기 예전에 JSON 파일을 읽고 쓰는 것 보다 파싱하는 것을 먼저 작성을 했었는데 JSON 파일을 읽고 쓰는 방법은 다음과 같습니다. 1. Newtonsoft.Json 라이브러리를 사용하여 JSON 파일을 읽고 쓰는 방법 1) JSON 파일 읽기 using System.IO; using Newtonsoft.Json; // JSON 파일 경로 string filePath = "example.json"; // 파일 읽기 using (StreamReader r = new StreamReader(filePath)) { string ..
-
C# XML 파일 읽기/쓰기닷넷 프레임워크/C# 2023. 3. 28. 16:42
C#에서 XML 파일을 읽고 쓰는 방법은 여러 가지가 있습니다. 다음은 각 방법과 코드 예시입니다. 1. XmlReader를 사용하여 XML 파일을 읽고 쓰는 방법 1) XML 파일 읽기 (1) XmlReader를 사용하여 XML 파일을 읽습니다. using System.Xml; XmlReader xmlReader = XmlReader.Create("file.xml"); (2) XmlReader에서 필요한 데이터를 읽습니다. while (xmlReader.Read()) { if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "node") { // Do something with the data } } (3) XMLReader를 닫습니다...
-
C# 계산오류? 부동 소수점에 대해 알아보자닷넷 프레임워크/C# 2023. 3. 2. 15:57
최근에 닷넷 오픈모임방에서 질문이 하나 올라왔다. [????] [오후 5:53] C#에서 100-63.1 하면 36.9라는 결과가 나오는데 [????] [오후 5:53] 100-64.1을 하면 35.900000000000006 라는 결과가 출력됩니다 [????] [오후 5:53] 이유가 뭔지 알 수 있을까요? [????] [오후 5:53] 사진 [????] [오후 5:54] 제 PC가 이상한걸까요.. 아님 원래 그런걸까요.. 이렇게 나오는 원인은 근사치로 계산 되는 부동 소수점 때문이다. 100-64.1부터 근사치가 되는 이유는? 64.1은 십진수에서는 정확한 수이지만, 이진수에서는 정확하게 표현할 수 없는 수이다. 따라서 부동 소수점으로 표현할 때 근사치가 된다. 즉, 64.1을 이진수로 변환하면 10..
-
C# URL 파라미터 인코딩 방법 (특수문자가 있는 경우에 사용)닷넷 프레임워크/C# 2022. 10. 19. 16:14
2018.10.30 - [프로그래밍/C# (WinForms, ASP.NET)] - C# URL에 들어가는 한글 UTF-8 Encoding private string GetData() { string result = string.Empty; string url = "https://api.com?value="; string value = "[value]"; // 인코딩하는 방법 string valueEncoding = System.Web.HttpUtility.UrlEncode(value); // 인코딩한 내용을 디코딩하는 방법 string valueDecoding = System.Web.HttpUtility.UrlDecode(valueEncoding); HttpWebRequest request = (Http..
-
Convert a string to an enum in C#닷넷 프레임워크/C# 2022. 5. 10. 14:57
In .NET Core and .NET Framework ≥4.0 there is a generic parse method: Enum.TryParse("Active", out StatusEnum myStatus); This also includes C#7's new inline out variables, so this does the try-parse, conversion to the explicit enum type and initialises+populates the myStatus variable. If you have access to C#7 and the latest .NET this is the best way. Original Answer In .NET it's rather ugly (unt..
-
c# 부팅시 자동 시작하는 프로그램, 레지스트리에 등록 또는 삭제 방법닷넷 프레임워크/C# 2021. 11. 30. 11:12
PC가 부팅이 된 후에 사용자가 어떠한 작업을 하지 않아도 바로 프로그램이 실행되게 설정하는 방법으로 이전에 쓴 글이 있는데 이 작업을 코드로 작성하기에는 어려운 부분이 있다. 2018.03.20 - [끄적이는/정보공유] - 윈도우 컴퓨터 시작시 *.exe 프로그램이 자동으로 실행되게 하는 방법 레지스트리 경로 SOFTWARE\Microsoft\Windows\CurrentVersion\Run 가 부팅 시 자동실행이 되는 프로그램들을 관리하는 경로이기 때문에 이 경로에 해당 실행파일을 등록 하거나 삭제하면 되므로 레지스트리에 등록하거나 삭제하는 방법은 코드로 작성하기 쉽다. C#에서 레지스트리 자동실행 경로에 프로그램을 등록하는 방법은 다음과 같다. private void SaveAutoExe() { //..
-
C# 두 위도와 경도 좌표 사이의 거리를 계산 하는 방법닷넷 프레임워크/C# 2021. 7. 19. 16:34
c#에서 두 위도와 경도 좌표 사이의 거리를 계산 하는 방법은 다음과 같다. 첫 번째 방법, NuGet 패키지에서 NEST를 설치한다. 설치 후 다음과 같이 코드를 작성한다. 참고로 단위는 미터이다. // c#에서 두 위도와 경도 좌표 사이의 거리를 계산 하는 첫 번째 방법 GeoCoordinate pin1 = new GeoCoordinate(lat1, lng1); GeoCoordinate pin2 = new GeoCoordinate(lat2, lng2); double distanceBetween = pin1.GetDistanceTo(pin2); 단, 이 방법은 닷넷프레임워크 버전을 타기 때문에 설치가 안 되는 경우 두 번째 방법을 사용하면 된다. 두 번째 방법, NEST가 설치 되지 않는 경우 다음의 ..
-
C# A리스트에서 B리스트에 있는 것을 제외하는 방법(LINQ)닷넷 프레임워크/C# 2021. 7. 13. 11:34
다음은 C#에서 LINQ를 활용하여 A리스트에서 B리스트에 있는 것을 제외하는 방법이다. 수학적 표현으로는 차집합이다. List list = listA.Where(x=> !listB.Select(y=> y.id).Contains(x.id)).ToList(); 이것을 반대로 하면 A리스트에서 B리스트에 있는 것만, 교집합이 된다. List list = listA.Where(x=> listB.Select(y=> y.id).Contains(x.id)).ToList(); 그 외에도 Except, Any, SequenceEqual 등을 이용한 방법이 있으며 다음의 사이트에서 확인할 수 있다. C# 두 개의 List를 비교하는 가장 빠른 방법 c# — 두 개의 List 를 비교하는 가장 빠른 방법 두 가지 대규모 ..
-
C# 네이버 지도 API(AI Naver-Directions 5)를 이용해서 거리 구하기닷넷 프레임워크/C# 2021. 5. 13. 18:25
단순히 좌표를 가지고 출발지와 도착지의 차익을 구하는 건 실제 사람이 겪는 거리와 다르다. 따라서 거리를 계산하려면 도로상황과 여러 변수들을 생각해서 계산이 이루어져야 한다. 그러나 일개 개인이 그것을 하기에는 많이 어렵다. 그러나 또 한 편으로는 네이버나 카카오에서 충분히 그런 자료들을 만들어놨음을 그들의 플랫폼을 살펴보면 충분히 알 수 있는 사실이다. (비용만 지불하면 다 되는 세상이다.) 그 중에서 C#에서 네이버 지도 API 중 Directions 5 혹은 15를 사용하는 방법에 대해 기술한다. * 상세 API 문서는 네이버 클라우드 플랫폼에서 제공 된다. driving - Directions 5 쿠키 제공 동의 당사는 고객님의 브라우징 기반 정보를 바탕으로 관련 정보 및 광고 제공을 위하여 지식..
-
C# 문자열을 문장으로 나누기 (Split('')할 때 'string'에서 'char'(으)로 변환할 수 없습니다. 해결 방법)닷넷 프레임워크/C# 2020. 11. 11. 10:29
string characterString = "123,456,789,000,000"; string[] splitCharacter = characterString.Split(','); // splitCharacter[0] : 123 // splitCharacter[1] : 456 // splitCharacter[2] : 789 // splitCharacter[3] : 000 // splitCharacter[4] : 000 2019/06/19 - [프로그래밍/C#] - C# 문자열을 열 글자씩 쪼개기, 문자열 자르기 C# 문자열을 열 글자씩 쪼개기, 문자열 자르기 텍스트박스나 문자열에 줄바꿈없이 문자들이 나열되어 있을 때 줄바꿈을 주기위해 몇 글자마다 줄바꿈을 줄 것인지에 대한 방법이다. 예시 코드에는 10..
-
C# foreach 루프를 LINQ로 변환하는 아주 쉬운 방법닷넷 프레임워크/C# 2020. 10. 16. 15:41
내용: IEnumerable을 사용하는 foreach 루프를 LINQ 쿼리 또는 LINQ 호출 양식(LINQ 메서드라고도 함)으로 쉽게 변환할 수 있습니다. 시기: IEnumerable을 사용하는 foreach 루프가 있고 이 루프를 LINQ 쿼리로 읽으려고 합니다. 이유: foreach 루프가 아닌 LINQ 구문을 사용하고 싶습니다. LINQ를 사용하면 쿼리가 C#의 고급 언어 구문이 됩니다. LINQ는 파일의 코드양을 줄이고, 코드를 읽기 쉽게 하며, 다른 데이터 소스가 유사한 쿼리 식 패턴을 갖도록 할 수 있습니다. 참고 LINQ 구문은 일반적으로 foreach 루프보다 효율이 떨어집니다. LINQ를 사용하면 코드의 가독성은 좋아지는 대신 성능이 떨어질 수 있다는 점을 알고 있는 것이 좋습니다. f..
-
C# 시간 계산 (DateTime Add함수 월, 일, 시, 분 더하기 빼기)닷넷 프레임워크/C# 2020. 9. 11. 02:04
C# 시간 계산 C#의 DateTime함수의 Add함수 사용법 기준 날짜에서 월, 일, 시, 분 더하기 빼기 using System; namespace Test { class Program { static void Main(string[] args) { // 현재 날짜 및 시간 DateTime now = DateTime.Now; // 1달 후 DateTime dt1Mp = now.AddMonths(1); // 1달 전 DateTime dt1Mm = now.AddMonths(-1); // 1일 후 DateTime dt1Dp = now.AddDays(1); // 1일 전 DateTime dt1Dm = now.AddDays(-1); // 1시간 후 DateTime dt1Hp = now.AddHours(1); ..