0

これに数行のコードを詰め込むことができました

For Each gal In galleries
   With New HtmlGenericControl("div")
                .ID = gal.Header
                .Controls.Add(New HtmlImage() With {.Src = "http://p.com/pic.jpg"})

                galleryContent.Controls.Add(**Me**)
   End With
Next

コントロールを「galleryContent」に戻すために現在作業ているオブジェクトを参照する方法が見つかりません- プレーンを使用meすると、Web サーバー全体がクラッシュします...おっと。

使用することは、単に使用することの短い手を提供しません. - しかし、それを行う唯一の方法を使用しますか? .Me 私は真剣に何かを期待していましたthis

何か案は?

4

3 に答える 3

5

できません。少なくともその方法ではありません。

これを試して:

For Each gal In galleries 
   Dim obj as New HtmlGenericControl("div") 
   With obj
        .ID = gal.Header 
        .Controls.Add(New HtmlImage() With {.Src = "http://p.com/pic.jpg"}) 

        galleryContent.Controls.Add(ojb) 
   End With 
Next 
于 2012-04-04T16:00:56.503 に答える
2

Mystere Man は正しいですが、それについて考えてみてください.... コードの可読性に影響します。

「コードは書かれるよりも読まれることが多いので、それに応じて計画を立ててください」

本当に「必要」でない限り、VB で「With」を使用しないことをお勧めします。

それが役に立てば幸い。

于 2012-04-04T16:23:18.687 に答える
1

次のようなことができます:

For Each gal in galleries
    galleryContent.Controls.Add(New HtmlGenericControl("div") With { .ID = gal.Header })
    galleryContent.Controls[galleryContent.Controls.Count - 1].Controls.Add(New HtmlImage() With {.Src = "http://p.com/pic.jpg"})
Next

ただし、これは純粋に行削減のためです。可読性が大幅に低下するため、通常のシナリオでは、コード行を削減することを目的とするべきではありません。可読性は「回線効率」よりもはるかに重要です。

于 2012-04-04T15:58:18.843 に答える