728x90
반응형

C# 44

'yield return'의 적절한 사용법

질문 : '수익률'의 적절한 사용 yield 키워드는 계속해서 나를 미혹시키는 C #의 키워드 중 하나이며 올바르게 사용하고 있다고 확신 한 적이 없습니다. 다음 두 가지 코드 중 선호되는 코드와 이유는 무엇입니까? 버전 1 : 수익률 사용 public static IEnumerable GetAllProducts() { using (AdventureWorksEntities db = new AdventureWorksEntities()) { var products = from product in db.Product select product; foreach (Product product in products) { yield return product; } } } 버전 2 : 목록 반환 public stati..

개발관련/other 2022.01.17

.NET Framework에서 Math.Pow ()를 구현하는 방법

질문 : .NET Framework에서 Math.Pow ()는 어떻게 구현됩니까? 나는 b 를 계산하기위한 효율적인 접근법을 찾고있었습니다 (예 : a = 2 및 b = 50 ). Math.Pow() 함수의 구현을 살펴보기로 결정했습니다. 그러나 .NET Reflector 에서 내가 찾은 것은 다음과 같습니다. [MethodImpl(MethodImplOptions.InternalCall), SecuritySafeCritical] public static extern double Pow(double x, double y); Math.Pow() 함수를 호출 할 때 내부에서 무슨 일이 일어나는지 확인할 수있는 리소스에는 어떤 것이 있습니까? 답변 MethodImplOptions.InternalCall 이는 메..

개발관련/other 2022.01.17

C# 컴파일 된 실행 파일에 DLL을 포함하는 방법

질문 : 컴파일 된 실행 파일에 DLL 포함 컴파일 된 C # 실행 파일에 기존 DLL을 포함 할 수 있습니까 (배포 할 파일이 하나만 있도록)? 가능하다면 어떻게할까요? 일반적으로 나는 DLL을 외부에두고 설치 프로그램이 모든 것을 처리하도록하는 것이 멋지지만, 직장에서이 질문을 한 두 사람이 있었는데 솔직히 모르겠습니다. 답변 Costura.Fody 를 사용하는 것이 좋습니다. 어셈블리에 리소스를 포함하는 가장 쉽고 쉬운 방법입니다. NuGet 패키지로 제공됩니다. Install-Package Costura.Fody 프로젝트에 추가 한 후 출력 디렉터리에 복사 된 모든 참조를 주 어셈블리에 자동으로 포함합니다. 프로젝트에 대상을 추가하여 포함 된 파일을 정리할 수 있습니다. Install-CleanR..

개발관련/other 2021.12.19

null 또는 빈 컬렉션을 반환하는 것이 효율적인가?

질문 : null 또는 빈 컬렉션을 반환하는 것이 더 낫습니까? 그것은 일종의 일반적인 질문입니다 (하지만 저는 C #을 사용하고 있습니다), 가장 좋은 방법은 무엇입니까 (모범 사례), 반환 형식으로 컬렉션이있는 메서드에 대해 null 또는 빈 컬렉션을 반환합니까? 답변 컬렉션이 비어 있습니다. 항상. 이것은 짜증납니다. if(myInstance.CollectionProperty != null) { foreach(var item in myInstance.CollectionProperty) /* arrgh */ } 컬렉션 또는 열거 형을 반환 할 때 null 을 반환하지 않는 것이 가장 좋은 방법입니다. 항상 빈 열거 가능 / 컬렉션을 반환합니다. 앞서 말한 말도 안되는 소리를 방지하고 동료와 클래스 사..

C #에서 Java의 final을 사용하는 방법

질문 : C #에서 Java의 최종 결과는 무엇입니까? C #에서 final 는 무엇입니까? 답변 final 키워드는 Java에서 여러 용도로 사용됩니다. 사용되는 컨텍스트에 따라 C # sealed 및 readonly 키워드에 모두 해당합니다. Classes 서브 클래 싱을 방지하려면 (정의 된 클래스에서 상속) : JAVA public final class MyFinalClass {...} C# public sealed class MyFinalClass {...} Methods virtual 메서드 재정의를 방지합니다. JAVA public class MyClass { public final void myFinalMethod() {...} } C# public class MyClass : MyBase..

개발관련/other 2021.12.16

C #의 동기 메서드에서 비동기 메서드를 호출하는 방법

질문 : C #의 동기 메서드에서 비동기 메서드를 호출하는 방법은 무엇입니까? 동기 메서드에서 호출하려는 public async void Foo() 지금까지 MSDN 설명서에서 본 모든 것은 비동기 메서드를 통해 비동기 메서드를 호출하는 것이지만 내 전체 프로그램은 비동기 메서드로 빌드되지 않았습니다. 이것이 가능할까요? 다음은 비동기 메서드에서 이러한 메서드를 호출하는 한 가지 예입니다. 연습 : Async 및 Await를 사용하여 웹 액세스 (C # 및 Visual Basic) 이제 동기화 메서드에서 이러한 비동기 메서드를 호출하는 방법을 살펴보고 있습니다. 답변 비동기 프로그래밍은 코드베이스를 통해 "성장"합니다. 그것은 좀비 바이러스와 비교 되었습니다. 가장 좋은 해결책은 성장을 허용하는 것이지만..

개발관련/other 2021.12.16

C # 부분 클래스 사용시기

질문 : 언제 C # 부분 클래스를 사용하는 것이 적절합니까? 나는 누군가가 내가 왜 그것들을 사용하는지, 그리고 그 과정에서 내가 얻을 수있는 이점에 대한 개요를 내게 줄 수 있는지 궁금했다. 답변 부분 클래스의 가장 큰 용도는 코드 생성기 / 디자이너의 삶을 더 쉽게 만드는 것입니다. Partial 클래스를 사용하면 생성자가 내보내는 데 필요한 코드를 간단히 내보낼 수 있으며 파일에 대한 사용자 편집을 처리 할 필요가 없습니다. 마찬가지로 사용자는 두 번째 부분 클래스를 사용하여 새 멤버로 클래스에 주석을 달 수 있습니다. 이것은 관심사 분리를위한 매우 깨끗한 프레임 워크를 제공합니다. 이를 보는 더 좋은 방법은 부분 클래스 전에 디자이너가 어떻게 작동했는지 확인하는 것입니다. WinForms 디자이..

개발관련/other 2021.12.15

C# JavaScriptSerializer-Enum 형을 문자열로 JSON 직렬화 하는 방법

질문 : JavaScriptSerializer-열거 형을 문자열로 JSON 직렬화 enum 속성을 포함하는 클래스가 있고 JavaScriptSerializer 사용하여 개체를 직렬화하면 string "name"이 아닌 열거 형의 정수 값이 포함됩니다. JavaScriptConverter 를 만들지 않고 내 json에서 string 로 열거 형을 얻는 방법이 있습니까? enum 정의 또는 개체 속성을 장식 할 수있는 속성이 있습니까? 예로서: enum Gender { Male, Female } class Person { int Age { get; set; } Gender Gender { get; set; } } 원하는 json 결과 : { "Age": 35, "Gender": "Male" } 기본 제공 ...

개발관련/other 2021.12.14

Error - Unable to access the IIS metabase

질문 : 오류-IIS 메타베이스에 액세스 할 수 없습니다. Visual Studio 2012를 설치하고 솔루션을 연 후 다음과 같은 형식으로 일련의 오류가 발생합니다. 웹 응용 프로그램 프로젝트 Foo는 IIS 를 사용하도록 구성됩니다. IIS 메타베이스 에 액세스 할 수 없습니다. 컴퓨터의 IIS 웹 사이트에 액세스 할 수있는 권한이 없습니다. 각 웹 애플리케이션에 대해이 정보를 얻습니다. 내가 시도한 것 : Visual Studio를 관리자로 실행 aspnet_regiis를 실행하고 있습니다.exe -ga MyUserName aspnet_regiis를 실행하고 있습니다.exe -i 이것들은이 문제에 대한 일반적인 해결책 인 것 같지만 성공하지 못했습니다. 내가 할 수있는 다른 일이 있습니까? 답변 W..

개발관련/other 2021.12.14

C #에서 epoch 시간을 변환하는 방법

질문 : C #에서 epoch 시간을 어떻게 변환합니까? C #에서 Unix Epoch 시간 을 실시간으로 어떻게 변환합니까? (1970 년 1 월 1 일부터 시작되는 신기원) 답변 업데이트 2020 DateTimeOffset으로 이것을 할 수 있습니다. DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeSeconds(epochSeconds); DateTimeOffset dateTimeOffset2 = DateTimeOffset.FromUnixTimeMilliseconds(epochMilliseconds); 당신이해야하는 경우 DateTime 대신에 목적 DateTimeOffset , 당신이 호출 할 수 DateTime 속성을 DateTime dat..

Assembly 파일 버전을 확인하는 방법

질문 : 어셈블리 파일 버전을 어떻게 얻을 수 있습니까? AssemblyInfo 에는 두 가지 어셈블리 버전이 있습니다. 다음 코드 줄로 Assembly Version 을 얻을 수 있습니다. Version version = Assembly.GetEntryAssembly().GetName().Version; Assembly File Version 은 어떻게 얻을 수 있습니까? 답변 당신이 정말로 원하는 것에 대한 설명을 요청하는 위의 내 의견을 참조하십시오. 바라건대 이것은 다음과 같습니다. System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); System.Diagnostics.FileVersionIn..

개발관련/other 2021.12.09

Login failed for user 'IIS APPPOOL\ASP.NET v4.0'

질문 : 'IIS APPPOOL \ ASP.NET v4.0'사용자가 로그인하지 못했습니다. 웹 프로젝트 (C # Asp.Net, EF 4, MS SQL 2008 및 IIS 7)가 있고 로컬에서 IIS 7로 마이그레이션해야합니다 (현재 CASSINI에서 잘 작동 함). IIS에서 로컬로 Default Web Site 가 있습니다. 내 배포 및 Default Web Site 는 모두 내 웹 프로젝트로 풀 대상 프레임 워크 4 인 풀 ASP.NET v4.0 (설정 이미지보기)에 있습니다. 사이트를 방문 할 때 브라우저는 페이지를 표시하지 않고 브라우저가 대신 페이지를 다운로드하도록 허용합니다. IIS에서 로컬로 실행되는 다른 프로젝트가 있으며 문제없이 작동하지만 Entity Framework를 사용하지 않습니..

개발관련/other 2021.12.09

Task.Delay를 사용하는 경우, Thread.Sleep을 사용하는 경우

질문 : Task.Delay를 사용하는 경우, Thread.Sleep을 사용하는 경우 Task.Delay 대 Thread.Sleep 을 언제 사용할 지에 대한 좋은 규칙이 있습니까? 구체적으로, 하나가 다른 하나보다 효과적이고 효율적으로 제공 할 수있는 최소값이 있습니까? 마지막으로 Task.Delay는 비동기 / 대기 상태 시스템에서 컨텍스트 전환을 유발하므로 사용하는 오버 헤드가 있습니까? 답변 현재 스레드를 차단 Thread.Sleep 사용하십시오. 현재 스레드를 차단하지 않고 논리적 지연을 원할 때 Task.Delay 사용합니다. 효율성은 이러한 방법에서 가장 중요한 문제가되어서는 안됩니다. 실제 사용되는 주요 용도는 I / O 작업에 대한 재시도 타이머로 밀리 초가 아닌 초 단위입니다. 출처 :..

오류 The request was aborted: Could not create SSL/TLS secure channel

질문 : 요청이 중단되었습니다. SSL / TLS 보안 채널을 만들 수 없습니다. 다음 오류 메시지 때문에 WebRequest 사용하여 HTTPS 서버에 연결할 수 없습니다. The request was aborted: Could not create SSL/TLS secure channel. 서버에 사용 된 경로가있는 유효한 HTTPS 인증서가 없다는 것을 알고 있지만이 문제를 우회하기 위해 다른 StackOverflow 게시물에서 가져온 다음 코드를 사용합니다. private void Somewhere() { ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(AlwaysGood..

C #의 구문 {get; set; } 가 의미하는 것

질문 : {get; 세트; } C #의 구문? ASP.NET MVC를 배우고 있으며 영어 문서를 읽을 수 있지만이 코드에서 무슨 일이 일어나고 있는지 정말 이해하지 못합니다. public class Genre { public string Name { get; set; } } 이것이 의미하는 바 : { get; set; } ? 답변 이것은 소위 auto 속성이며 본질적으로 다음의 약칭입니다 (유사한 코드는 컴파일러에서 생성됩니다). private string name; public string Name { get { return this.name; } set { this.name = value; } } 출처 : https://stackoverflow.com/questions/5096926/what-is-t..

C #에서 배열과 다차원 배열의 차이점

질문 : C #에서 다차원 배열과 배열 배열의 차이점은 무엇입니까? C #에서 double[,] 과 array-of-arrays double[][] 의 차이점은 무엇입니까? 차이가 있다면 각각에 가장 적합한 용도는 무엇입니까? 답변 배열 배열 (들쭉날쭉 한 배열)은 다차원 배열보다 빠르며 더 효과적으로 사용할 수 있습니다. 다차원 배열에는 더 좋은 구문이 있습니다. 들쭉날쭉하고 다차원 배열을 사용하여 간단한 코드를 작성한 다음 IL 디스어셈블러로 컴파일 된 어셈블리를 검사하면 들쭉날쭉 한 (또는 1 차원) 배열에서 저장 및 검색이 단순한 IL 명령어 인 반면 다차원 배열에 대한 동일한 작업은 메서드임을 알 수 있습니다. 항상 느린 호출. 다음 방법을 고려하십시오. static void SetElement..

.NET에서 줄 바꿈으로 문자열을 분할하는 가장 쉬운 방법

질문 : .NET에서 줄 바꿈으로 문자열을 분할하는 가장 쉬운 방법은 무엇입니까? .NET에서 문자열을 줄 바꿈으로 분할해야하며 문자열을 분할하는 유일한 방법은 Split 메서드를 사용하는 것입니다. 그러나 그것은 내가 (쉽게) 줄 바꿈으로 나누는 것을 허용하지 않을 것입니다. 그래서 그것을하는 가장 좋은 방법은 무엇입니까? 답변 문자열로 분할하려면 문자열 배열을 사용하는 오버로드를 사용해야합니다. string[] lines = theText.Split( new string[] { Environment.NewLine }, StringSplitOptions.None ); 편집하다: 텍스트에서 다른 유형의 줄 바꿈을 처리하려면 둘 이상의 문자열을 일치시키는 기능을 사용할 수 있습니다. 이것은 두 가지 유형의..

개발관련/other 2021.11.22

LINQ에서 GroupBy 여러 열을 수행하는 방법

질문 : 여러 열로 그룹화 LINQ에서 GroupBy 여러 열을 수행하는 방법 SQL에서 이와 유사한 것 : SELECT * FROM GROUP BY , 이것을 LINQ로 어떻게 변환 할 수 있습니까? QuantityBreakdown ( MaterialID int, ProductID int, Quantity float ) INSERT INTO @QuantityBreakdown (MaterialID, ProductID, Quantity) SELECT MaterialID, ProductID, SUM(Quantity) FROM @Transactions GROUP BY MaterialID, ProductID 답변 익명 유형을 사용하십시오. 예 group x by new { x.Column1, x.Column2 ..

개발관련/other 2021.11.19

딥 클로닝 개체

질문 : 딥 클로닝 개체 다음과 같이하고 싶습니다. MyObject myObj = GetMyObj(); // Create and fill a new object MyObject newObj = myObj.Clone(); 그런 다음 원래 개체에 반영되지 않은 새 개체를 변경합니다. 저는이 기능이 자주 필요하지 않으므로 필요할 때 새 객체를 만든 다음 각 속성을 개별적으로 복사하는 방법을 사용했지만 항상 더 좋고 우아한 처리 방법이 있다는 느낌을받습니다. 그 상황. 원본 개체에 변경 사항이 반영되지 않고 복제 된 개체를 수정할 수 있도록 개체를 복제하거나 전체 복사하려면 어떻게해야합니까? 답변 한 가지 접근 방식은 ICloneable 인터페이스 를 구현하는 것이지만 (여기 에 설명되어 있으므로 역류하지 않겠..

개발관련/other 2021.11.18

Reflection을 사용하여 문자열에서 속성 값 가져 오기

질문 : 리플렉션을 사용하여 문자열에서 속성 값 가져 오기 내 코드에서 Reflection 1 예제를 사용하여 데이터 변환을 구현하려고합니다. GetSourceValue 함수에는 다양한 유형을 비교하는 스위치가 있지만 이러한 유형과 속성을 제거하고 GetSourceValue 가 단일 문자열 만 매개 변수로 사용하여 속성 값을 가져 오도록하고 싶습니다. 문자열에 클래스와 속성을 전달하고 속성 값을 확인하고 싶습니다. 이것이 가능한가? 원본 블로그 게시물의 웹 아카이브 버전 1 개 답변 public static object GetPropValue(object src, string propName) { return src.GetType().GetProperty(propName).GetValue(src, nul..

[C#] 폴더가없는 경우 새로 만드는 방법

질문 : 폴더가없는 경우 새로 만듭니다. 내 응용 프로그램에서 FileUploader 컨트롤을 사용합니다. 지정된 폴더에 파일을 저장하고 싶습니다. 이 폴더가 없으면 먼저 만든 다음이 폴더에 파일을 저장하고 싶습니다. 폴더가 이미 존재하는 경우 파일을 저장하십시오. 어떻게 할 수 있습니까? 답변 다른 사람들이 말했듯이 System.IO.Directory.CreateDirectory 사용하십시오. 그러나 먼저 존재하는지 확인할 필요는 없습니다. 문서에서 : 이미 존재하거나 경로의 일부가 유효하지 않은 경우가 아니면 경로에 지정된 모든 디렉토리가 작성됩니다. 디렉터리가 이미있는 경우이 메서드는 새 디렉터리를 만들지 않지만 기존 디렉터리에 대한 DirectoryInfo 개체를 반환합니다. 출처 : https:..

Visual Studio의 출력 창에 메세지 쓰기

질문 : Visual Studio의 출력 창에 쓰기 디버깅 목적으로 출력 창에 메시지를 쓰려고합니다. system.out.println("") 과 같은 함수를 검색했습니다. Debug.Write , Console.Write 및 Trace.Write 시도했습니다. 오류가 발생하지는 않지만 아무것도 인쇄하지 않습니다. "DEBUG 상수 정의"및 "TRACE 상수 정의"옵션이 선택됩니다. 메뉴 도구 → 옵션 → 디버깅 → "모든 출력 창 텍스트를 직접 실행 창으로 리디렉션" 옵션이 선택되어 있지 않습니다. 구성 : 활성 (디버그) 참고 : 필요한 경우 마법사를 사용하여 "Windows Forms 응용 프로그램"으로 프로젝트를 만들었습니다. 어디를 봐야할지 모르겠어요. 답변 System.Diagnostics 네..

개발관련/other 2021.11.02

.NET에서 C # 개체를 JSON 문자열로 바꾸는 방법

질문 : .NET에서 C # 개체를 JSON 문자열로 어떻게 바꾸나요? 다음과 같은 수업이 있습니다. class MyDate { int year, month, day; } class Lad { string firstName; string lastName; MyDate dateOfBirth; } 그리고 Lad 객체를 다음과 같은 JSON 문자열로 바꾸고 싶습니다. { "firstName":"Markoff", "lastName":"Chaney", "dateOfBirth": { "year":"1901", "month":"4", "day":"30" } } (포맷 제외). 이 링크를 찾았 지만 .NET 4에 없는 네임 스페이스를 사용합니다. 나는 또한 JSON.NET 에 대해 들었지만 그들의 사이트는 현재 다운 ..

개발관련/other 2021.11.01

IEnumerable <T> return vs IQueryable<T> return

질문 : IEnumerable 반환 대 IQueryable IQueryable 반환과 IEnumerable 반환의 차이점은 언제 하나를 다른 것보다 선호해야합니까? IQueryable custs = from c in db.Customers where c.City == "" select c; IEnumerable custs = from c in db.Customers where c.City == "" select c; 둘 다 연기 된 실행이며 언제 하나가 다른 것보다 선호되어야합니까? 답변 예, 둘 다 연기 된 실행 을 제공합니다. 차이점은 IQueryable 는 LINQ-to-SQL (LINQ.-to-anything)이 작동 할 수 있도록하는 인터페이스라는 것입니다. IQueryable 에서 쿼리를 추가..

728x90
반응형