반응형

c# 59

C#에서 const와 readonly의 차이점은 무엇입니까?

질문자 :readonly C#에서 const 와 readonly 의 차이점은 무엇입니까? 언제 다른 것보다 하나를 사용하시겠습니까? 겉으로 보이는 차이 외에 const VS readonly 값을 정의할 때 값을 선언해야 하는 것은 동적으로 계산할 수 있지만 생성자가 종료되기 전에 할당해야 합니다. 그 후에는 고정됩니다. const 는 암시적으로 static 입니다. ClassName.ConstantName 표기법을 사용하여 액세스합니다. 미묘한 차이가 있습니다. AssemblyA 정의된 클래스를 고려하십시오. public class Const_V_Readonly { public const int I_CONST_VALUE = 2; public readonly int I_RO_VALUE; public Con..

etc./StackOverFlow 2022.02.27

C#에서 클래스 대신 구조체를 사용해야 하는 경우는 언제인가요?

질문자 :Alex Baranosky C#에서 클래스가 아닌 구조체를 사용해야 하는 경우는 언제입니까? 내 개념적 모델은 항목이 단순히 값 유형의 모음일 때 구조체가 사용된다는 것입니다. 논리적으로 모든 것을 하나의 응집력 있는 전체로 묶는 방법입니다. 여기 에서 이러한 규칙을 발견했습니다. 구조체는 단일 값을 나타내야 합니다. 구조체의 메모리 공간은 16바이트 미만이어야 합니다. 구조체는 생성 후에 변경하면 안 됩니다. 이러한 규칙이 작동합니까? 구조체는 의미적으로 무엇을 의미합니까? OP에서 참조한 소스에는 약간의 신뢰성이 있습니다. 하지만 Microsoft는 어떻습니까? 구조체 사용에 대한 입장은 무엇입니까? Microsoft에서 추가 학습을 찾았고 다음과 같이 찾았습니다. 유형의 인스턴스가 작고 일..

etc./StackOverFlow 2022.02.24

다른 스레드에서 GUI를 어떻게 업데이트합니까?

질문자 :CruelIO 다른 Thread Label 을 업데이트하는 가장 간단한 방법은 무엇입니까? thread1 에서 실행 중인 Form 이 있고 그로부터 다른 스레드( thread2 )를 시작하고 있습니다. 하지만 thread2 일부 파일을 처리하는 나는 업데이 트하려는 Label 상의 Form 의 현재 상태와 thread2 일의. 어떻게 하면 될까요? 가장 간단한 Label.Invoke 전달된 익명 메서드입니다. // Running on the worker thread string newText = "abc"; form.Label.Invoke((MethodInvoker)delegate { // Running on the UI thread form.Label.Text = newText; }); // ..

etc./StackOverFlow 2022.02.24

C#에서 사전이 Hashtable보다 선호되는 이유는 무엇입니까?

질문자 :Nakul Chaudhary 대부분의 프로그래밍 언어에서 사전은 해시 테이블보다 선호됩니다. 그 이유는 무엇입니까? 가치가 있는 사전 은 (개념적으로) 해시 테이블입니다. "왜 Hashtable Dictionary 클래스를 사용합니까?"를 의미했다면 쉬운 대답입니다. Dictionary 는 제네릭 유형이고 Hashtable 은 그렇지 않습니다. 즉, 임의의 개체를 삽입할 수 없고 Dictionary 하여 형식 안전성을 얻을 수 있습니다. 흥미롭게도 Dictionary 구현은 소스 코드의 이 주석에서 알 수 있듯이 Hashtable 기반으로 합니다. 일반 사전은 Hashtable의 소스에서 복사되었습니다. 원천 Michael Madsen Dictionary Hashtable 차이점: 일반 일반이 ..

etc./StackOverFlow 2022.02.17

C#에서 상대 시간 계산

질문자 :Community Wiki DateTime 값이 주어지면 다음과 같이 상대 시간을 어떻게 표시합니까? 2시간 전 3일 전 한 달 전 Jeff, 코드 는 훌륭하지만 상수를 사용하면 더 명확해질 수 있습니다(Code Complete에서 제안한 대로). const int SECOND = 1; const int MINUTE = 60 * SECOND; const int HOUR = 60 * MINUTE; const int DAY = 24 * HOUR; const int MONTH = 30 * DAY; var ts = new TimeSpan(DateTime.UtcNow.Ticks - yourDate.Ticks); double delta = Math.Abs(ts.TotalSeconds); if (delta ..

etc./StackOverFlow 2022.02.17

목록에서 상속하지 않는 이유<T> ?

질문자 :Superbest 프로그램을 계획할 때 나는 종종 다음과 같은 일련의 생각으로 시작합니다. 축구팀은 축구 선수들의 명단일 뿐입니다. 따라서 다음과 같이 표현해야 합니다. var football_team = new List(); 이 목록의 순서는 선수가 명단에 나열된 순서를 나타냅니다. 그러나 나중에 팀에 단순한 선수 목록 외에 기록해야 하는 다른 속성도 있다는 것을 알게 되었습니다. 예를 들어 이번 시즌의 누적 득점, 현재 예산, 유니폼 색상, 팀 이름을 나타내는 string 그래서 저는 다음과 같이 생각합니다. 좋아, 축구 팀은 선수 목록과 같지만 추가로 이름( string )과 누적 점수( int )가 있습니다. .NET은 미식축구팀을 저장하는 클래스를 제공하지 않으므로 나만의 클래스를 만들..

etc./StackOverFlow 2022.02.08

C#에서 [Flags] Enum Attribute는 무엇을 의미합니까?

질문자 :Brian Leahy 때때로 다음과 같은 열거형이 표시됩니다. [Flags] public enum Options { None = 0, Option1 = 1, Option2 = 2, Option3 = 4, Option4 = 8 } [Flags] 속성이 정확히 무엇을 하는지 이해하지 못합니다. 누구든지 게시 할 수있는 좋은 설명이나 예가 있습니까? 열거형이 단일 값이 아닌 가능한 값의 컬렉션을 나타낼 때마다 [Flags] 이러한 컬렉션은 종종 비트 연산자와 함께 사용됩니다. 예를 들면 다음과 같습니다. var allowedColors = MyColor.Red | MyColor.Green | MyColor.Blue; [Flags] 속성 은 이를 자체적으로 활성화하지 않습니다 .ToString() 메서..

etc./StackOverFlow 2022.02.08

Equals 메서드가 재정의될 때 GetHashCode를 재정의하는 것이 중요한 이유는 무엇입니까?

질문자 :David Basarab 다음 클래스가 주어졌을 때 public class Foo { public int FooId { get; set; } public string FooName { get; set; } public override bool Equals(object obj) { Foo fooItem = obj as Foo; if (fooItem == null) { return false; } return fooItem.FooId == this.FooId; } public override int GetHashCode() { // Which is preferred? return base.GetHashCode(); //return this.FooId.GetHashCode(); } } Foo Foo ..

etc./StackOverFlow 2022.02.07

내 코드의 속도를 빠르게 하시겠습니까?

질문자 :Eren Ersönmez try-catch의 영향을 테스트하기 위해 몇 가지 코드를 작성했지만 몇 가지 놀라운 결과를 보았습니다. static void Main(string[] args) { Thread.CurrentThread.Priority = ThreadPriority.Highest; Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime; long start = 0, stop = 0, elapsed = 0; double avg = 0.0; long temp = Fibo(1); for (int i = 1; i < 100000000; i++) { start = Stopwatch.GetTimestamp(); temp ..

etc./StackOverFlow 2022.02.07

유형 검사: 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.02.07
반응형