var x = "window.Something";
alert(window.x)
jsfiddle http://jsfiddle.net/XJEGU/でこのコードを試すと、 undefined と警告されます。このコードをブラウザで実行すると問題なく動作しますが、jsfiddle がこのコードを使用してそのような動作を行う方法を誰でも知ることができます。
var x = "window.Something";
alert(window.x)
jsfiddle http://jsfiddle.net/XJEGU/でこのコードを試すと、 undefined と警告されます。このコードをブラウザで実行すると問題なく動作しますが、jsfiddle がこのコードを使用してそのような動作を行う方法を誰でも知ることができます。
JSFiddleは、コードを関数にラップします。これは、それx
がその関数に対してローカルにスコープされていることを意味します。
より良い方法は、を返すことIEnumerable<string>
です。yield return
メソッド内でおよびを使用yield break
して、コレクションを構築します。このようにして、アレイの作成を延期します。詳細については、こちらをご覧ください。IEnumerable
拡張メソッドとlinqクエリ内でチェーンできるという利点があります。
var results = from x in GetPupilsByClass(className) where x.StartsWith("A");
どうしても完全なリストを返す必要がある場合(の怠惰な性質のためyield
)、メソッドのシグネチャを次のように変更することをお勧めします。
public bool TryGetPupilsByClass(string className, out ICollection<string> pupils)
この手法には3つの利点があります。
ICollection<string>
使用しているストレージメカニズムを明らかにすることなく、強く型付けされています。戻り具象クラスは慎重に使用する必要があります。選択肢は、、、などですがIList<string>
、選択したものを使用するReadOnlyCollection<string>
とIEnumerable<string>
、ユーザーが結果に対してできることとできないことの意図がより明確になります。HTML HelpViewer1.0用のHTMLを生成するためのXSLTを作成しています。一部のタイトルには、<
と>
シーケンスが含まれています。これにより、ビューアがアングルブラケットに変換されるため、ビューアに多くの問題が発生します。Unicodeバージョンが機能することをオンラインで読んだ後(http://mshcmigrate.helpmvp.com/faq/notes10)これを行うためにreplace関数を使用しようとしましたが、結果は入力と同じです。
私が使用しているコードは次のとおりです。
replace(replace(/*/name, '<', '<'), '>', '>')
入力:
DocumentationTest.GenericClass<T> Namespace
次のように出力します:
DocumentationTest.GenericClass<T> Namespace
この出力を取得するために文字列置換を実行するにはどうすればよいですか?
DocumentationTest.GenericClass<T> Namespace
ウィンドウに変数を埋め込もうとしている場合。このhttp://jsfiddle.net/XJEGU/3/を使用できます