【问题标题】:How do I translate this VB.Net to C#? [duplicate]如何将此 VB.Net 翻译成 C#? [复制]
【发布时间】:2021-05-17 15:09:01
【问题描述】:

我在 VB.Net 中有这段代码:

Dim c As Control

For Each c In Me.Controls

    If TypeOf (c) is PictureBox Then
    CType(c, PictureBox).Image = My.Resources.available
    End If

Next

什么是合适的 C# 代码?

【问题讨论】:

  • VB 代码一开始就不好。如果您使用For Each pb In Me.Controls.OfType(Of PictureBox)(),那么您不需要If 语句或额外的演员表。该代码直接转换为 C# 为 foreach (var pb in this.Controls.OfType<PictureBox>)()
  • @jmcilhinney 轻微错字更正:foreach (var pb in this.Controls.OfType<PictureBox>())。 C# 也可能会删除 this
  • @CaiusJard,感谢您的更正。至于使用this,我自己当然会放弃它,但它是原始VB中使用的Me的直接翻译,因此我选择包含它。

标签: c# vb.net


【解决方案1】:

是的

((PictureBox)c).Image = ...

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/casting-and-type-conversions

投射 c 到 PictureBox

注意,你也可以这样做

if (c is PictureBox picbox)
{
   picbox.Image = ...
}

这样你测试 c 是一个 PictureBox 并且(如果是的话)立即转换并存储在 picbox 变量中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 2011-04-18
    相关资源
    最近更新 更多