«c#» 태그된 질문

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

7
의도 한 동작을 수행하기 전에 함수가 null 검사를 수행해야하는 경우 이것이 나쁜 설계입니까?
그래서 이것이 좋은 코드 디자인인지 나쁜 코드인지 모릅니다. 그래서 더 잘 물어볼 것이라고 생각했습니다. 클래스를 사용하여 데이터 처리를 수행하는 메소드를 자주 작성하며, 사전에 널 참조 나 기타 오류가 발생하지 않도록 메소드를 많이 점검합니다. 매우 기본적인 예를 들면 다음과 같습니다. // fields and properties private Entity _someEntity; public Entity SomeEntity => …
67 c#  design  validation 

10
다운 캐스팅을 올바르게 사용하는 것은 무엇입니까?
다운 캐스팅은 기본 클래스 (또는 인터페이스)에서 서브 클래스 또는 리프 클래스로 캐스트하는 것을 의미합니다. 다운 캐스트의 예로는 System.Object다른 유형 으로 캐스트 할 수 있습니다 . 다운 캐스팅은 인기가없고 코드 냄새 일 수 있습니다. 객체 지향 교리는 예를 들어 다운 캐스팅 대신 가상 또는 추상 메서드를 정의하고 호출하는 것을 선호합니다. 다운 …

16
프로그래머는 언어와 프레임 워크를 선택할 때 얼마나 많은 자유를 가져야합니까?
저는 주로 C #을 지향하는 회사에서 일하기 시작했습니다. 우리는 Java와 JRuby를 좋아하는 소수의 사람들이 있지만 C #과 같은 대다수의 프로그래머가 있습니다. 웹 애플리케이션 구축 경험이 많고 JRuby on Rails 또는 nodejs와 같은 최신 기술에 의존하기 때문에 채용되었습니다. 최근에 짧은 시간에 많은 작업을 수행하는 데 중점을 둔 웹 응용 프로그램을 구축하는 …

12
인수의 유효성을 검사하는 생성자가 SRP를 위반합니까?
가능한 한 SRP (Single Responsibility Principle)를 준수하려고 노력하고 있으며 대의원에 크게 의존하는 특정 패턴 (SRP on Methods)에 익숙해졌습니다. 이 방법이 올바른지 또는 심각한 문제가 있는지 알고 싶습니다. 예를 들어, 생성자에 대한 입력을 확인하기 위해 다음 방법을 도입 Stream할 수 있습니다 ( 입력은 임의적이며 무엇이든 가능) private void CheckInput(Stream stream) { …

12
오류를 발생시켜야 하는지를 나타내는 플래그가있는 것
나는 최근에 훨씬 더 오래된 개발자들 (약 50 세 이상)과 함께 일하기 시작했습니다. 그들은 시스템이 다운 될 수없는 항공을 다루는 중요한 애플리케이션에서 작업했습니다. 결과적으로 이전 프로그래머는 이런 식으로 코딩하는 경향이 있습니다. 그는 예외가 발생해야하는지 여부를 나타 내기 위해 객체에 부울을 넣는 경향이 있습니다. 예 public class AreaCalculator { AreaCalculator(bool shouldThrowExceptions) …

11
ANSI C가 새로운 프로젝트에 적합하지 않다는 것을 상사에게 어떻게 확신시킬 수 있습니까? [닫은]
몇 달 전, 자체 개발 한 테스트 장비를 제어하고 일련의 측정 값을 기록하는 앱을 개발하기 시작했습니다. UI가 단순해야하며 연속 레코딩으로 인해 스레드가 필요할 수 있습니다. 이 응용 프로그램은 몇 년 동안 사용되며이 기간 동안 많은 컴퓨터 과학 학생들이 관리해야합니다. 우리의 상사는 약 30 년 전에 졸업했으며 (범죄로 간주되지 않음; 저도 …

5
인터페이스를 명시 적 또는 암시 적으로 구현하는 것의 차이점은 무엇입니까?
Visual Studio에서 인터페이스를 마우스 오른쪽 단추로 클릭하고 인터페이스 구현 또는 명시 적으로 인터페이스 구현을 선택할 수 있습니다. public class Test : ITest { public string Id // Generated by Implement Interface { get { throw new NotImplementedException(); } } string ITest.Id // Generated by Implement Interface Explicitly { get { …
64 c#  syntax 

11
큰 부울 표현식이 동일한 표현식이 술어 메소드로 분류 된 것보다 더 읽기 쉽습니다? [닫은]
이해하기 쉬운 것, 큰 부울 명령문 (quite complex) 또는 동일한 명령문을 술어 메소드 (세분화 할 추가 코드)로 분류 한 것입니까? 옵션 1, 큰 부울 표현식 : private static bool ContextMatchesProp(CurrentSearchContext context, TValToMatch propVal) { return propVal.PropertyId == context.Definition.Id && !repo.ParentId.HasValue || repo.ParentId == propVal.ParentId && ((propVal.SecondaryFilter.HasValue && context.SecondaryFilter.HasValue && propVal.SecondaryFilter.Value …
63 c#  readability 

11
이 클래스 디자인이 단일 책임 원칙을 위반합니까?
오늘 나는 누군가와 논쟁했다. 빈혈 도메인 모델이 아닌 리치 도메인 모델의 이점을 설명했습니다. 그리고 나는 간단한 수업으로 내 요점을 시연했습니다. public class Employee { public Employee(string firstName, string lastName) { FirstName = firstName; LastName = lastname; } public string FirstName { get private set; } public string LastName { get; …


6
C #이 Java와 달리“new”및“virtual + override”키워드로 작성된 이유는 무엇입니까?
자바에서는 더있다 virtual, new, override방법 정의에 대한 키워드. 따라서 방법의 작동은 이해하기 쉽습니다. 원인 DerivedClass가 BaseClass를 확장 하고 동일한 이름과 동일한 BaseClass 서명을 가진 메소드를 갖는 경우 대체는 런타임 다형성에서 수행됩니다 (메소드가 아닌 경우 static). BaseClass bcdc = new DerivedClass(); bcdc.doSomething() // will invoke DerivedClass's doSomething method. 이제 방법을 이해하는 …

17
거대한“스위치”설명 대신 OO 접근 방식을 사용해야하는 이유는 무엇입니까?
저는 .Net, C # 상점에서 일하고 있으며 더 많은 객체 지향 접근 방식이 아닌 많은 "케이스"와 함께 코드에 거대한 Switch 문을 사용해야한다고 주장하는 동료가 있습니다. 그의 주장은 Switch 문이 "cpu jump table"로 컴파일되고 따라서 가장 빠른 옵션이라는 사실로 일관되게 되돌아갑니다. 나는 솔직히 이것에 대해 논쟁을하지 않습니다 ... 왜냐하면 그가 무슨 …


9
가독성과 유지 보수성, 중첩 함수 호출을 작성하는 특수한 경우
중첩 함수 호출에 대한 내 코딩 스타일은 다음과 같습니다. var result_h1 = H1(b1); var result_h2 = H2(b2); var result_g1 = G1(result_h1, result_h2); var result_g2 = G2(c1); var a = F(result_g1, result_g2); 최근에 다음과 같은 코딩 스타일이 많이 사용되는 부서로 변경했습니다. var a = F(G1(H1(b1), H2(b2)), G2(c1)); 내 코딩 방식의 결과는 …

6
모든 요청에 ​​대해 새로운 단일 HttpClient 인스턴스를 만들어야합니까?
최근 에 다음과 같은 방식 으로 사용하는 문제에 대해 이야기하는 asp.net 괴물 의이 블로그 게시물 을 보았습니다 HttpClient. using(var client = new HttpClient()) { } 블로그 게시물에 따라 HttpClient모든 요청을 처리 한 후에는 TCP 연결을 열어 둘 수 있습니다. 이로 인해 잠재적으로 System.Net.Sockets.SocketException. 게시물에 따라 올바른 방법 HttpClient은 소켓 낭비를 …
57 c#  http-request 

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