반응형

c# 59

유형 검사: typeof, GetType 또는 is?

질문자 :jasonh 많은 사람들이 다음 코드를 사용하는 것을 보았습니다. Type t = typeof(obj1); if (t == typeof(int)) // Some code here 하지만 다음과 같이 할 수도 있습니다. if (obj1.GetType() == typeof(int)) // Some code here 아니면 이거: if (obj1 is int) // Some code here 개인적으로 마지막이 가장 깔끔한 느낌인데 혹시 제가 놓치고 있는 부분이 있나요? 어떤 것을 사용하는 것이 가장 좋습니까? 아니면 개인 취향입니까? 모두 다릅니다. typeof 는 유형 이름(컴파일 시간에 지정)을 사용합니다. GetType 은 인스턴스의 런타임 유형을 가져옵니다. 인스턴스가 상속 트리에 있으면 i..

etc./StackOverFlow 2022.01.25

C#에서 모든 열거형 값을 반복하는 방법은 무엇입니까? [복제하다]

질문자 :divinci 이 질문에는 이미 답변이 있습니다 . 폐쇄 8 년 전 . 이 질문에는 이미 답이 있습니다. C#에서 열거형을 어떻게 열거합니까? 26개 답변 public enum Foos { A, B, C } Foos 의 가능한 값을 반복하는 방법이 있습니까? 원래? foreach(Foo in Foos) 예 당신은 사용할 수 GetValue‍‍‍s 방법 : var values = Enum.GetValues(typeof(Foos)); 또는 입력된 버전: var values = Enum.GetValues(typeof(Foos)).Cast(); 나는 오래전에 그러한 경우를 위해 내 개인 라이브러리에 도우미 기능을 추가했습니다. public static class EnumUtil { public stat..

etc./StackOverFlow 2022.01.22

IDisposable 인터페이스의 적절한 사용

질문자 :cwick 나는 읽고 알고 Microsoft 설명서를 의은 "차"를 사용한다는 IDisposable 인터페이스는 관리되지 않는 리소스를 정리하는 것입니다. 나에게 "관리되지 않는"은 데이터베이스 연결, 소켓, 창 핸들 등과 같은 것을 의미합니다. 그러나 Dispose() 메서드가 관리되는 리소스를 해제하기 위해 구현되는 코드를 본 적이 있습니다. 당신을 위해 그것을 돌봐. 예를 들어: public class MyCollection : IDisposable { private List _theList = new List(); private Dictionary _theDict = new Dictionary(); // Die, clear it up! (free unmanaged resources) pu..

etc./StackOverFlow 2022.01.08

C#이 foreach에서 변수를 재사용하는 이유가 있습니까?

질문자 :StriplingWarrior C#에서 람다 식이나 익명 메서드를 사용할 때 수정된 클로저 함정에 접근하는 것을 조심해야 합니다. 예를 들어: foreach (var s in strings) { query = query.Where(i => i.Prop == s); // access to modified closure ... } 수정된 클로저로 인해 위의 코드는 Where s 의 최종 값을 기반으로 하도록 합니다. 여기 에 설명된 대로 foreach 루프에서 선언된 s 변수가 컴파일러에서 다음과 같이 번역되기 때문에 발생합니다. string s; while (enumerator.MoveNext()) { s = enumerator.Current; ... } 다음과 같이 대신: while (enume..

etc./StackOverFlow 2022.01.08

C#에서 기본 생성자 호출

질문자 :lomaxx 기본 클래스에서 상속하고 상속된 클래스의 생성자에서 기본 클래스의 생성자로 무언가를 전달하려는 경우 어떻게 해야 합니까? 예를 들어 Exception 클래스에서 상속하는 경우 다음과 같이 하고 싶습니다. class MyExceptionClass : Exception { public MyExceptionClass(string message, string extraInfo) { //This is where it's all falling apart base(message); } } 기본적으로 내가 원하는 것은 기본 예외 클래스에 문자열 메시지를 전달할 수 있는 것입니다. 기본 클래스 생성자를 올바르게 호출하도록 생성자를 다음과 같이 수정합니다. public class MyExcep..

etc./StackOverFlow 2022.01.04

C#에서 두 개의 물음표가 함께 의미하는 것은 무엇입니까?

질문자 :Edward Tanguay 이 코드 줄에서 실행: FormsAuth = formsAuth ?? new FormsAuthenticationWrapper(); 두 개의 물음표는 무엇을 의미합니까? 일종의 삼항 연산자입니까? 구글에서 찾기 힘드네요. 이것은 null 병합 연산자이며 삼항(즉시-if) 연산자와 매우 유사합니다. 또한 참조 ?? 운영자 - MSDN . FormsAuth = formsAuth ?? new FormsAuthenticationWrapper(); 확장: FormsAuth = formsAuth != null ? formsAuth : new FormsAuthenticationWrapper(); 다음으로 확장됩니다. if(formsAuth != null) FormsAuth = form..

etc./StackOverFlow 2022.01.02

"The breakpoint will not currently be hit. No symbols have been loaded for this document." 를 어떻게 수정합니까? Warning?

질문자 :Community Wiki 익스프레스 에디션의 AC# 데스크톱 응용 프로그램이 작동했지만 5초 후에 작동하지 않았습니다. 나는 다음을 시도했다 : 디버그 구성, 디버그 플래그 및 전체 디버그 정보가 모든 어셈블리에 설정되어 있는지 확인합니다. 내 전체 컴퓨터에서 프로젝트와 관련된 모든 bin 및 obj 폴더와 모든 DLL 파일을 삭제합니다. 처음부터 문제를 일으키는 프로젝트를 다시 만드십시오. 재부팅 솔루션에 두 개의 Windows Forms 프로젝트가 있습니다. 그 중 하나는 디버그 정보를 로드하고 다른 하나는 로드하지 않습니다. 둘 다 프로젝트 파일에서 정확히 같은 방식으로 디버그 정보를 얻으려는 어셈블리를 참조합니다. 어떤 아이디어? 이 질문을 검토하기 위해 돌아올 때 주로 나 자신을 위해..

etc./StackOverFlow 2021.12.31

NullReferenceException이란 무엇이며 어떻게 수정합니까?

질문자 :Community Wiki 이 질문의 답변은 커뮤니티의 노력 입니다. 이 게시물을 개선하려면 기존 답변을 수정하세요. 현재 새로운 답변이나 상호 작용을 허용하지 않습니다. 몇 가지 코드가 있고 실행될 때 NullReferenceException throw하여 다음과 같이 말합니다. 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 이것은 무엇을 의미하며 이 오류를 수정하려면 어떻게 해야 합니까? 원인은 무엇입니까? 결론 null (또는 VB.NET에서는 Nothing 것을 사용하려고 합니다. 이것은 null 설정하거나 전혀 설정하지 않았음을 의미합니다. 다른 것과 마찬가지로 null 이 전달됩니다. 메서드 "A" 에서 null 경우 메서드 "B"가 메서드 "A"에 null null 은 다른 의..

etc./StackOverFlow 2021.12.21

DateTime 유형의 생일을 기준으로 다른 사람의 나이를 어떻게 계산합니까?

질문자 :Community Wiki DateTime 주어지면 나이를 몇 년 단위로 계산합니까? 이해하기 쉽고 간단한 솔루션입니다. // Save today's date. var today = DateTime.Today; // Calculate the age. var age = today.Year - birthdate.Year; // Go back to the year in which the person was born in case of a leap year if (birthdate.Date > today.AddYears(-age)) age--; 그러나 이것은 당신이 동아시아 계산법을 사용하지 않고 시대 에 대한 서구 개념을 찾고 있다고 가정합니다. Community Wiki 이것은 이상한 방법이..

etc./StackOverFlow 2021.12.20

C#의 enum에서 int 값 가져오기

질문자 :jim Questions (복수형)이라는 수업이 있습니다. 이 클래스에는 다음과 같은 Question public enum Question { Role = 2, ProjectFunding = 3, TotalEmployee = 4, NumberOfServers = 5, TopBusinessConcern = 6 } Questions 클래스에는 foo Questions 객체를 반환하는 get(int foo) 함수가 있습니다. 다음과 같이 할 수 있도록 열거형에서 정수 값을 얻는 쉬운 방법이 있습니까? Questions.Get(Question.Role) 열거 형을 캐스팅하십시오. 예 int something = (int) Question.Role; int 이므로 위의 내용은 야생에서 볼 수 있는 대부분..

etc./StackOverFlow 2021.12.20
반응형