2009-05-22 12 views
2

全体のソリューションは、Visual Studioで罰金構築しますが、私はウェブサイトをコンパイルするナントスクリプトを実行したときに、私はこの行のいくつかのエラーを取得:コンパイラでこのコード行に問題があるのはなぜですか?

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

まず一つが予想される場合、構文エラー(期待値)を入力しますと言います、)期待される;期待しています。私はこのような行をプロジェクトで使用していましたが、それらの行に文句をつけていないようです。

私は、その条件文でSplitを呼び出すときにエラーが発生していると確信していますが、なぜそれがわかりません。

+2

このような長い複合語を使用するとよいですか?私の(C++)の習慣は、それを3つまたは4つの別々のステートメント(コード行)として記述し、コンパイラに可能な限り最適化させることです。 – ChrisW

+0

良いかどうかは分かりませんが、本当に2つのステートメントになります。 1つは分割する必要がある文字列を決定し、もう1つは実際に分割する文字列です。しかし、私がそれをした場合、私はそれを一度だけ使う必要があるので、何の理由もなく文字列を作成しています。とにかく最適化されるかもしれませんが、私が働いている人は、必要のない変数を作成しないときれいだと思うので、これを好むでしょう。 – Brandon

+1

@Brandonは、その変数に名前を付けるかどうかにかかわらず、まだ存在します。コードを読みにくくすることによって、コードをもっと速くすることはありません。 コンパイルされていないときに、コードは今すぐどのくらい速いのですか?これは低打撃ですが、あなたがこれらの問題に頻繁に遭遇するかどうか考えておく価値があります。 – Wedge

答えて

8

私はnew[]new char[]に行ったこと

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

注意をしようと提案します。

+1

呪い、ReSharper。ありがとう、それは働いた。 – Brandon

関連する問題