반응형

c# 59

\d [0-9]보다 덜 효율적입니다.

질문자 :weston [0-9] 또는 \d 대신 정규식에서 [0123456789] 를 사용한 답변에 대해 댓글을 달았습니다. 나는 아마도 문자 집합보다 범위나 숫자 지정자를 사용하는 것이 더 효율적일 것이라고 말했다. 나는 오늘 그것을 테스트하기로 결정했고 (적어도 C# 정규식 엔진에서) \d 가 크게 다르지 않은 것처럼 보이는 다른 둘 중 하나보다 덜 효율적으로 보인다는 것을 놀랍게도 발견했습니다. 다음은 실제로 숫자가 포함된 5077이 포함된 1000개의 임의 문자로 구성된 10000개 이상의 임의 문자열에 대한 테스트 결과입니다. Regex \d took 00:00:00.2141226 result: 5077/10000 Regex [0-9] took 00:00:00.1357972 result: 507..

etc./StackOverFlow 2023.04.20

필드와 속성의 차이점은 무엇입니까?

질문자 :Community Wiki C#에서 필드를 속성과 다른 점은 무엇이며 언제 속성 대신 필드를 사용해야 합니까? 속성은 필드를 노출합니다. 필드는 (거의 항상) 클래스에 대해 비공개로 유지되어야 하며 get 및 set 속성을 통해 액세스해야 합니다. 속성은 클래스를 사용하는 항목이 액세스하는 외부 방식에 영향을 주지 않으면서 필드를 변경할 수 있도록 하는 추상화 수준을 제공합니다. public class MyClass { // this is a field. It is private to your class and stores the actual data. private string _myField; // this is a property. When accessed it uses the underl..

etc./StackOverFlow 2023.04.20

URL에 대한 Path.Combine?

질문자 :Brian MacKay Path.Combine 은 편리하지만 URL 에 대한 .NET 프레임워크에 유사한 기능이 있습니까? 다음과 같은 구문을 찾고 있습니다. Url.Combine("http://MyUrl.com/", "/Images/Image.jpg") 다음을 반환합니다. "http://MyUrl.com/Images/Image.jpg" Uri 에는 이 작업을 수행하는 생성자가 있습니다. new Uri(Uri baseUri, string relativeUri) 다음은 예입니다. Uri baseUri = new Uri("http://www.contoso.com"); Uri myUri = new Uri(baseUri, "catalog/shownew.htm"); 편집자의 참고 사항: 이 방법은 예상대..

etc./StackOverFlow 2023.04.15

HTTP POST 웹 요청을 만드는 방법

질문자 :Hooch 정식 POST 메서드를 사용하여 일부 데이터를 보낼 수 있습니까? GET 요청을 할 수 POST 요청을 만드는 방법을 모릅니다. GET 및 POST 요청을 수행하는 방법에는 여러 가지가 있습니다. 방법 A: HttpClient(선호) 사용 가능: .NET Framework 4.5+ , .NET Standard 1.1+ , .NET Core 1.0+ . 현재 선호되는 접근 방식이며 비동기식 고성능입니다. 대부분의 경우 기본 제공 버전을 사용하지만 매우 오래된 플랫폼의 경우 NuGet 패키지가 있습니다. using System.Net.Http; 설정 권장 하나의 인스턴스를 HttpClient 당신이하지에 특정의 이유가없는 응용 프로그램의 수명과 공유 할 수 있습니다. private sta..

etc./StackOverFlow 2023.04.15

생성자의 가상 멤버 호출

질문자 :JasonS 내 객체 생성자에서 가상 멤버에 대한 호출에 대해 ReSharper로부터 경고를 받고 있습니다. 이것이 왜 하지 말아야 할 일이겠습니까? C#으로 작성된 개체가 생성되면 이니셜라이저가 가장 많이 파생된 클래스에서 기본 클래스로 순서대로 실행되고 생성자가 기본 클래스에서 가장 많이 파생된 클래스로 순서대로 실행됩니다( 자세한 내용은 Eric Lippert의 블로그 참조 왜 그런지 ). 또한 .NET에서 개체는 생성될 때 형식을 변경하지 않지만 가장 많이 파생된 형식에 대한 메서드 테이블을 사용하여 가장 많이 파생된 형식으로 시작합니다. 즉, 가상 메서드 호출은 항상 가장 많이 파생된 형식에서 실행됩니다. 이 두 가지 사실을 결합하면 생성자에서 가상 메서드 호출을 수행하고 상속 계층에서..

etc./StackOverFlow 2022.03.22

C#의 숨겨진 기능? [닫은]

질문자 :Community Wiki 현재 이 질문은 Q&A 형식에 적합하지 않습니다. 우리는 답변이 사실, 참조 또는 전문 지식에 의해 뒷받침되기를 기대하지만 이 질문은 토론, 논쟁, 여론 조사 또는 확장 토론을 유도할 가능성이 높습니다. 이 질문을 개선하고 다시 열 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으세요. 폐쇄 9 년 전 . 잠김 . 이 질문과 해당 답변은 주제와 관련이 없지만 역사적 의미가 있기 때문에 잠겨 있습니다. 현재 새로운 답변이나 상호 작용을 허용하지 않습니다. 이 질문 에서 다음을 배운 후 이것이 내 마음에 떠올랐습니다. where T : struct 우리 C# 개발자는 모두 C#의 기초를 알고 있습니다. 선언, 조건, 루프, 연산자 등을 의미합니다. 우리 중 일부는..

etc./StackOverFlow 2022.03.22

AddTransient, AddScoped 및 AddSingleton 서비스 차이점

질문자 :Elvin Mammadov ASP.NET Core에서 DI( 종속성 주입) 를 구현하고 싶습니다. 따라서 이 코드를 ConfigureServices 메서드에 추가하면 두 가지 방법이 모두 작동합니다. ASP.NET Core services.AddTransient 및 service.AddScoped 메서드의 차이점은 무엇입니까? public void ConfigureServices(IServiceCollection services) { // Add framework services. // Add application services. services.AddTransient(); services.AddScoped(); } TL;DR 일시적인 개체는 항상 다릅니다. 모든 컨트롤러와 모든 서비스에 새 ..

etc./StackOverFlow 2022.03.17

목록을 정렬하는 방법<T> 객체의 속성에 의해

질문자 :Shyju OrderId , OrderDate , Quantity 및 Total 과 같은 속성이 있는 Order 라는 클래스가 있습니다. Order 클래스 목록이 있습니다. List objListOrder = new List(); GetOrderList(objListOrder); // fill list of orders Order 개체의 한 속성을 기반으로 목록을 정렬하려고 합니다. 예를 들어 주문 날짜 또는 주문 ID별로 정렬해야 합니다. C#에서 이 작업을 수행하려면 어떻게 해야 합니까? 내가 생각할 수있는 가장 쉬운 방법은 Linq를 사용하는 것입니다. List SortedList = objListOrder.OrderBy(o=>o.OrderDate).ToList(); Lazarus 목록을 ..

etc./StackOverFlow 2022.03.07

'정적 읽기 전용' 대 'const'

질문자 :Svish const 및 static readonly 필드에 대해 읽었습니다. 상수 값만 포함하는 일부 클래스가 있습니다. 그것들은 우리 시스템의 다양한 것들에 사용됩니다. 그래서 내 관찰이 올바른지 궁금합니다. 이러한 종류의 상수 값은 공개된 모든 항목에 대해 static readonly 그리고 내부/보호/개인 값 const 추천 메뉴가 무엇인가요? static readonly 필드를 사용하지 않고 속성을 사용해야 합니까? public static readonly 필드는 약간 특이합니다. public static 속성( get 만 포함)이 더 일반적입니다( private static readonly 필드에 의해 지원됨). const 값은 호출 사이트에 직접 레코딩됩니다. 이것은 양날이다: 값이..

etc./StackOverFlow 2022.03.04

바이트 배열을 16진수 문자열로 또는 그 반대로 어떻게 변환합니까?

질문자 :Community Wiki 어떻게 바이트 배열을 16진수 문자열로 또는 그 반대로 변환할 수 있습니까? 어느 하나: public static string ByteArrayToString(byte[] ba) { StringBuilder hex = new StringBuilder(ba.Length * 2); foreach (byte b in ba) hex.AppendFormat("{0:x2}", b); return hex.ToString(); } 또는: public static string ByteArrayToString(byte[] ba) { return BitConverter.ToString(ba).Replace("-",""); } 예를 들어 여기 와 같이 더 많은 변형이 있습니다. 역변환은 다..

etc./StackOverFlow 2022.02.27
반응형