我已经设法将几行代码压缩到此
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
崩溃了整个网络服务器...... whooops。
使用不提供仅使用.
的较短手 - 但它使用唯一的方法来做到这一点?我非常期待某种.Me
或this
有什么想法吗?
答案 0 :(得分: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
答案 1 :(得分:2)
Mystere Man是正确的,但想一想......这会影响代码的可读性。
“代码的读取频率远高于编写代码,因此请相应地进行规划”
我建议避免在VB中使用“With”...除非你真的“必须”。
希望它有所帮助。
答案 2 :(得分: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
但这纯粹是为了减少线路。它严重降低了可读性,因此在任何正常情况下,您都不应该只是减少代码行。可读性远比“线路效率”重要。