«c#» 태그된 질문

C #은 Microsoft에서 .NET 플랫폼과 병렬로 생성 한 다중 패러다임, 관리, 가비지 수집 개체 지향 프로그래밍 언어입니다.

5
언제 그리고 왜 void를 사용해야합니까 (예 : bool / int 대신)
때로는 개발자가 함수에 중요하지 않은 것을 반환하기로 선택한 메서드가 실행됩니다. 내 말은, 코드를 볼 때, 그것은 void생각하는 순간 만큼이나 훌륭하게 작동한다는 것을 의미합니다. "왜?" 익숙한가요? 때때로 나는 같은 것을 반환하는 것이 좋습니다 대부분의 경우 그 동의 bool또는 int보다는 단지를 수행합니다 void. 그러나 큰 그림에서 장단점에 대해서는 확실하지 않습니다. 상황에 따라를 …

6
하나의 .cs 파일에 여러 클래스가 있습니까? [닫은]
.cs 파일 내에 여러 클래스를 만드는 것이 좋습니까? 아니면 각 .cs 파일에 개별 클래스가 있어야합니까? 예를 들면 다음과 같습니다. public class Items { public class Animal { } public class Person { } public class Object { } } 이것이 좋은 아키텍처의 나쁜 예라는 사실을 잠시 피하고 .cs 파일에 코드 …
30 c#  code-smell 

5
언제 그리고 왜 중첩 클래스를 사용해야합니까?
Object Oriented Programming을 사용하면 클래스 (중첩 클래스) 내에 클래스를 만들 수 있지만 4 년 동안 코딩 경험에서 중첩 클래스를 만들지 않았습니다. 중첩 클래스는 무엇입니까? 클래스가 중첩되어 있으면 클래스를 비공개로 표시 할 수 있고 포함 클래스에서 해당 클래스의 모든 비공개 멤버에 액세스 할 수 있음을 알고 있습니다. 포함하는 클래스 자체에서 변수를 …

7
처리되지 않은 예외를 처리하는 방법? (응용 프로그램 종료 및 유지)
데스크톱 응용 프로그램에서 처리되지 않은 예외가 발생할 때 가장 좋은 방법은 무엇입니까? 고객에게 지원을 요청할 수 있도록 메시지를 표시하려고했습니다. 사용자에게 응용 프로그램을 다시 시작하는 것이 좋지만 강제로 실행하지 않는 것이 좋습니다. ux.stackexchange.com에서 논의 된 것과 유사 -예상치 못한 애플리케이션 오류를 처리하는 가장 좋은 방법은 무엇입니까? 이 프로젝트는 .NET WPF 응용 …

4
C # 6.0의 새로운 Null 조건부 연산자는 Demeter of Laws에 적용됩니까?
데메테르 의 법칙은 다음과 같이 말합니다. 각 장치에는 다른 장치에 대한 정보가 제한적이어야합니다. 현재 장치와 "가까운"장치 만 있습니다. 각 부대는 친구들과 만 대화해야합니다. 낯선 사람과 이야기하지 마십시오. 가까운 친구와 만 대화하십시오. C # 6.0은 null 조건부 연산자 라는 새로운 연산자를 도입했습니다 . IMHO, 코딩이 쉬워지고 가독성이 향상됩니다. 그러나 클래스 필드를 …

6
새 객체를 만들거나 모든 속성을 재설정 하시겠습니까?
public class MyClass { public object Prop1 { get; set; } public object Prop2 { get; set; } public object Prop3 { get; set; } } 객체 myObject가 MyClass있고 속성을 재설정해야 한다고 가정 합니다. 새 객체를 만들거나 각 속성을 다시 할당하는 것이 더 낫습니까? 이전 인스턴스에서 추가로 사용하지 않는다고 가정하십시오. …

5
Java / C #에서 RAII를 구현할 수없는 이유는 무엇입니까?
질문 : Java / C #에서 RAII를 구현할 수없는 이유는 무엇입니까? 설명 : 가비지 수집기가 결정적이지 않다는 것을 알고 있습니다. 따라서 현재 언어 기능을 사용하면 범위 종료시 객체의 Dispose () 메서드를 자동으로 호출 할 수 없습니다. 그러나 그러한 결정적 기능을 추가 할 수 있습니까? 내 이해 : RAII 구현은 두 …

11
기본 클래스와 동일한 파일에서 인터페이스를 선언하는 것이 좋습니다.
교환 가능하고 테스트 가능하려면 일반적으로 논리가있는 서비스에는 인터페이스가 있어야합니다. 예 : public class FooService: IFooService { ... } 디자인 측면에서 나는 이것에 동의하지만,이 접근법으로 나를 귀찮게하는 것 중 하나는 하나의 서비스에 대해 두 가지 (클래스와 인터페이스)를 선언해야하며 우리 팀에서는 일반적으로 두 개의 파일 (하나 클래스와 인터페이스의 경우). IDE (VS2010)에서 "Go …

6
단위 테스트 예상 결과를 하드 코딩해야합니까?
단위 테스트의 예상 결과가 하드 코딩되어야합니까, 아니면 초기화 된 변수에 의존 할 수 있습니까? 하드 코딩되거나 계산 된 결과가 단위 테스트에서 오류가 발생할 위험을 증가 시킵니까? 고려하지 않은 다른 요소가 있습니까? 예를 들어,이 두 가지 중 더 안정적인 형식은 무엇입니까? [TestMethod] public void GetPath_Hardcoded() { MyClass target = new MyClass("fields", …
29 c#  unit-testing 

3
선택적 매개 변수 또는 오버로드 된 생성자
나는 DelegateCommand을 구현하고 있으며 생성자를 구현하려고 할 때 다음 두 가지 디자인 선택을 생각해 냈습니다. 1 : 여러 개의 오버로드 된 생성자 public DelegateCommand(Action<T> execute) : this(execute, null) { } public DelegateCommand(Action<T> execute, Func<T, bool> canExecute) { this.execute = execute; this.canExecute = canExecute; } 2 : 선택적 매개 변수를 가진 …

8
C # Generics-중복 방법을 피하는 방법?
다음과 같은 두 개의 클래스가 있다고 가정합니다 (첫 번째 코드 블록과 일반적인 문제는 C #과 관련이 있음). class A { public int IntProperty { get; set; } } class B { public int IntProperty { get; set; } } 이러한 클래스는 어떤 식 으로든 변경할 수 없습니다 (타사 어셈블리의 일부 …
28 c#  generics 

6
일반 리포지토리에 실질적인 이점이 있습니까?
새 앱에 대한 일반 리포지토리를 만드는 이점에 대한 기사를 읽었습니다 ( 예 ). 동일한 저장소를 사용하여 여러 엔티티 유형에 대해 여러 가지 작업을 한 번에 수행 할 수 있기 때문에 아이디어가 좋습니다. IRepository repo = new EfRepository(); // Would normally pass through IOC into constructor var c1 = new Country() …

15
두 프로그래밍 언어 사이를 오가는 것이 현명한가? [닫은]
나는 거의 2 년 동안 꽤 많은 PHP를 작성해 왔습니다. 이제 .NET (주로 c #) 개발을하고 있습니다. 그러나 때로는 돌아가서 PHP를 사용합니다. 나의 주요 질문은, 내가 이것을 계속하는 것이 현명한 것인가, 아니면 C #으로 개발을 계속해야 하는가? 이것이 장기적으로 저에게 해를 끼치겠습니까 (내 주요 목표는 모든 거래에서 잭이되는 것이 아니라고 …

4
차단 대 주입 : 프레임 워크 아키텍처 결정
내가 디자인하는 데 도움이되는이 프레임 워크가 있습니다. 몇 가지 일반적인 구성 요소를 사용하여 수행해야하는 일반적인 작업이 있습니다. 특히 로깅, 캐싱 및 이벤트 발생. 의존성 주입을 사용하는 것이 더 나은지 확실하지 않으며 (예를 들어 속성으로) 이러한 모든 구성 요소를 각 서비스에 도입하거나 서비스의 각 방법에 메타 데이터를 배치하고 이러한 공통 작업을 …

14
일반적인 프로그래밍에 대한 조언을 구하는 초보자 [닫기]
프로그래밍에 익숙하지 않았던 시절을 기억해야 할 사람이 있습니다 ... 두 달 동안 나의 새로운 직업 (소프트웨어 개발자로서)에서 보호 관찰 기간이 지났습니다. 프로그래밍 경험이 거의 없으며 (C ++ 만 해당) 현재 asp.net MVC 및 silverlight를 사용하고 있습니다. 그래서 회사가 작업하고있는 웹 사이트가 있으며 더 나은 버그를 해결하기 위해 노력하고 있습니다. 문제는 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.