2014-02-20 2 views
-3

누구나 내게 전화를 걸면 실행 시간, 효율성 등의 모든 요소를 ​​고려하여 차이점을 알 수 있습니다.VB.NET과 C#으로 작성된 코드의 차이점은 무엇입니까?

어느 것이 효과적입니까?

+0

동일한 프레임 워크를 사용하는 두 가지 언어! –

+0

다운 투표의 이유는 무엇입니까? 좋은 사상가와 연구자들에게 좋은 질문이되기를 바랍니다. 나는 인터뷰에서이 질문에 직면했습니다. –

+1

나는 어떤 경우라도 downvote하지 않았다. 그러나 나는 당신과 동의한다, downvoters는 이유를 주어야한다! –

답변

0

두 언어가 같은 언어로 컴파일되기 때문에 아무 것도 없어야합니다. 가장 큰 변수는 프로그래머입니다. 예를 들어, VB.NET 프로그래머가 VB (A) 배경에서 오는 C# 프로그래머와 다른 방식으로 문제를 해결하는 경향이 있다고 생각하면 더 많은 로터리 또는 비효율적 인 방식으로 작업을 수행 할 수 있습니다 C (++) 배경).

확실하게 알고 싶으면 코드 조각을 취해 IL을 검사하십시오.

3

VB.NET은 "친숙한"프로그래밍 언어입니다. 즉각적인 동적 프로그래밍을 지원하며, 예를 들어 변수를 명시 적으로 입력 할 필요가 없습니다. 데이터 변환은 자동으로 수행됩니다. 오버플로 검사는 기본적으로 설정되어 있습니다. 참조로 속성을 전달하면됩니다. 캐스트없이 바이트에 int를 할당 할 수 있습니다. 객체 지향 프로그래밍을 실제로 이해하지 않고도 다중 창 Winforms 앱을 만들 수 있습니다. 컴파일러는 일련의 코드를 자동으로 생성합니다.

아무 것도 무료입니다. 어떤 경우에는 여분의 오버 헤드가 매우 클 수 있습니다. 단순히 두 개의 숫자를 추가하는 것은 필요한 것보다 3 배 더 비쌀 수 있습니다. 오버플로 검사는 꽤 사슴입니다. 문자열과 숫자 사이의 자동 변환은 VB.NET 프로그램에서 자주 발생하는 사마귀로 매우 비쌉니다. 소스 코드를 보는 것에서 그러한 병목 현상을 식별 할 수있는 기회를 많이 얻지는 않습니다.

C#은 훨씬 더 엄격합니다. 바닥 매트 아래에 실행 비용을 숨기는 코드를 생성하지 않습니다 (거의). 따라서 자동으로 퍼포먼스 코드를 작성하는 것이 더 쉽습니다. 그렇지 않으면 병목을 식별하는 데 프로파일 러를 사용하지 않아도되는 것을 완전히 피할 수는 없습니다.

1

나는 두 답변을 지금까지 확장하고 싶습니다. 둘 다 정확합니다. VB.NET의 문제점은 일반적으로 개발자의 사고 방식과 VB.NET 언어의 유연성입니다.

Option Explicit On, Option Strict On (Option Strict On은 Option Explicit가 가능) 옵션을 사용하지 않으면 더 복잡한 결과를 얻을 수 있습니다. 복잡한 것은 변수와 객체를 올바르게 캐스팅해야한다는 것을 의미합니다. BASIC 개발자에게는 복잡한 것으로 간주 될 수 있습니다.

옵션 엄격한 정보 : 새 응용 프로그램을 작성할 때 http://support.microsoft.com/kb/311329

옵션 완전 추론에는 시간의 99.99 %를 사용할 수 없습니다. 나는 100 %의 시간을 말할 것이다. 그러나 누군가 합법적 인 이유를 가질 것이고, 나는 단지 생각할 수 없다.

옵션 추측 정보 : http://msdn.microsoft.com/en-us/library/bb384665.aspx

관련 문제