0

コードを書くための最良の方法は次のとおりです。

1)

Dim current = Request.Path
current = current.Remove(0, 1)
current = current.Replace(".aspx", "")

2)

Dim current = Request.Path.Remove(0, 1).Replace(".aspx", "")

3)

Dim current = Request.Path
Dim current2 = current.Remove(0, 1)
Dim current3 = current.Replace(".aspx", "")

それとも1~2は変わらない?

4

4 に答える 4

1

それらはすべて同じです。試す

Path.GetFileNameWithoutExtension(Request.Path)
于 2009-06-05T03:33:13.190 に答える
1

3つとも基本的に同じです。

文字列は不変であることを忘れないでください。文字列に対してメソッドを呼び出すたびに、新しい文字列オブジェクトが割り当てられるため、呼び出しRemove()によって新しいオブジェクトが作成され、それを使用して が呼び出されますReplace()

1と2は基本的に同じです。#3 は、3 つの個別の変数を使用するため、少し異なります。これらの文字列への参照を保持して、後で使用できるようにします。ガベージ コレクターは、3 つの例すべてで何をすべきかを認識し、中間文字列を変数として保存するかどうかに関係なく、ほぼ同じように処理する必要があります。

#2 を使用します。コードの行数が少なく、読みやすさが犠牲にならないという単純な理由からですが、それでもかなり短いコードです。

于 2009-06-05T03:38:12.173 に答える
1

これらの呼び出しは例外をスローする可能性があります。おもちゃのコードの場合はチェックしなくてもかまいませんが、パスを取得したら、Remove を呼び出す前に String.NullOrEmpty と長さをチェックする必要があります。だから、私は#2を避けます。それ以外は、メソッドの他の場所で中間値 (パスとして current および current2) を使用する必要がない限り、#1 の方がきれいに見えます。

于 2009-06-05T03:38:19.117 に答える
0

.Net では文字列は不変であるため、これらすべてのメソッドから同じパフォーマンスが得られます。

于 2009-06-05T03:32:46.030 に答える