2009-05-22 4 views
2

Visual Studio에서 전체 솔루션을 잘 만들지 만 Nant 스크립트를 실행하여 웹 사이트를 컴파일하면이 줄에 몇 가지 오류가 발생합니다.컴파일러가이 코드 라인에 문제가있는 이유는 무엇입니까?

string[] qs = (Request.QueryString["e"] ?? String.Empty) 
       .Split(new[] { '?' }, StringSplitOptions.RemoveEmptyEntries); 

처음에는 유형 예상, 다음 구문 오류 (예상 값),) 예상,; 예상했다. 나는 프로젝트에서 전에 이와 같은 선을 사용했고, 그것들에 불평하지 않는 것 같다.

그 조건문에서 Split을 호출하면 오류가 발생한다고 확신하지만 왜 그런지는 잘 모르겠습니다.

+2

길고 복잡한 문장을 사용하는 것이 좋습니까? 내 (C++) 버릇은 3 ~ 4 개의 별도 문장 (코드 줄)으로 작성하고 컴파일러가 원하는 경우 컴파일러에서 최적화하도록하는 것입니다. – ChrisW

+0

나는 그것이 좋은 것인지 아닌지는 잘 모르겠지만 실제로는 두 가지 진술 일 것입니다. 하나는 분할해야 할 문자열을 결정하고 다른 하나는 실제로 분할합니다. 그러나 만약 내가 그렇게했다면, 나는 단지 한 번만 사용해야 할 것이기 때문에 아무런 이유없이 문자열을 생성 할 것입니다. 어쨌든 최적화 될지도 모르겠지만 내가 함께 일하는 사람들은 필요하지 않은 변수를 만들지 않을 때 더 깨끗하게 생각할 때 이것을 선호합니다. – Brandon

+1

@Brandon은 변수 이름에 관계없이 여전히 존재합니다. 코드를 읽기 쉽게 만들어 코드를 더 빠르게 만들지는 않습니다. 실제로 코드가 컴파일되지 않는데 얼마나 빠르지? 그것은 낮은 타격이지만, 당신이 이러한 문제에 자주 빠지면 생각할 가치가 있습니다. – Wedge

답변

8

나는 new[]new char[]에 갔다

string[] qs = (Request.QueryString["e"] ?? String.Empty) 
    .Split(new char[] { '?' }, StringSplitOptions.RemoveEmptyEntries); 

주를 시도하는 것이 좋습니다.

+1

저주받은 사람, ReSharper. 고마워, 그게 효과가있어. – Brandon