특수한 경우가 있습니다 만, 손을 뗀 상태에서 문자열이 "Nothing"과 Nothing이 아닌 경우 차이가 없으면 VB6 버전을 사용하십시오.
저는 두 가지 방법을 사용하는 다른 프로그래머, 'Mid (MyString, 2)'가 작동하는 동안 사람들이 'MyString.SubString (1)'을 사용하는 코드가 불어 나는 큰 프로젝트를 진행하고있었습니다.
이 예제의 두 가지 주요 오류는 다음과 같습니다. (1) 문자열은 아무 것도 아니며 메서드를 실행하기 전에 확인해야합니다. OO 표기법의 제한 : '아무것도'또는 (빈 객체)를 원한다고해도 객체가 아무것도없는 경우 멤버 메소드를 호출 할 수 없습니다. 문자열에 nullable/stub 객체 (""또는 string.empty를 사용할 수있는)를 사용하여이 문제가 해결 되었더라도 여전히 올바르게 초기화되었는지 확인해야합니다. 예를 들어 Nothing 우리가 통제 할 수없는 라이브러리 호출에서 문자열을받을 때 ""사용합니다.
너는 아무것도 아닌 문자열을 갖게 될 것입니다. 시간의 90 %는 ""을 의미합니다. .SubString을 사용하면 항상 아무것도 확인하지 않아도됩니다. VB 버전에서는 약 10 % 만 신경 써야합니다.
(2) 특히 중간 예제에서 다시 한 번, 2 char 문자열 중 chars 3 ~ 10을 원한다면 다시 90 %가 반환됩니다. 실제로, 당신은 거의 예외를 원할 것입니다 : 당신은 적절한 길이와 코드가 어떻게 행동해야 하는지를 먼저 체크해야 할 것입니다. (적어도 정의 된 행동, 적어도 데이터 입력 오류가 있습니다. 예외를 던지고 싶지 않습니다.)
.Net 버전에서는 100 %의 시간을 확인하고 VB 버전에서는 거의 사용하지 않습니다.
.Net은 모든 것을 객체 지향 철학에 집중하고자했습니다. 그러나 문자열은 미묘한 방식으로 사용되는 대부분의 개체와 약간 다릅니다. MS-Basic은 함수를 만들 때 이것을 생각하지 않았습니다. 단지 운이 좋았습니다. 함수의 강점 중 하나는 null 객체를 처리 할 수 있다는 것입니다.
프로젝트의 경우, 처음에는 '아무것도 없음'문자열이 우리의 흐름에 어떻게 도달했는지 물어볼 수 있습니다. 그러나 .Net 기능을 사용하려는 일부 프로그래머의 결정은 피할 수없는 서비스 호출, 응급 버그 수정 및 패치를 의미했습니다. 문제를 스스로 해결하십시오.
비슷한 토론 http://stackoverflow.com/questions/241822/vb-runtime-functions-in-vb-net-for-vb6-programmers – MarkJ
여기 또 다른 하나 http://stackoverflow.com/questions/ 226517/is-the-microsoft-visualbasic-namespace-true-net-code – MarkJ