首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VB二维数组项与图像的比较

VB二维数组项与图像的比较
EN

Stack Overflow用户
提问于 2018-10-18 12:16:25
回答 1查看 28关注 0票数 0

为什么消息框显示"False"?

代码语言:javascript
复制
    Dim images(4, 4) As Image

    For rows = 0 To 4
        For columns = 0 To 4
            images(rows, columns) = My.Resources.kaboom
        Next
    Next

    MessageBox.Show(images(3, 3).Equals(My.Resources.kaboom))
EN

回答 1

Stack Overflow用户

发布于 2018-10-18 20:59:44

如果您查看kaboom属性背后的代码,您将看到它每次都会创建一个新对象。

代码语言:javascript
复制
    '''<summary>
    '''  Looks up a localized resource of type System.Drawing.Bitmap.
    '''</summary>
    Friend ReadOnly Property kaboom() As System.Drawing.Bitmap
        Get
            Dim obj As Object = ResourceManager.GetObject("kaboom", resourceCulture)
            Return CType(obj,System.Drawing.Bitmap)
        End Get
    End Property

如果保持对一个对象的引用,它将等于true。它也可能更快,因为它不需要创建新的对象。

代码语言:javascript
复制
    Dim kaboom As Image = My.Resources.kaboom
    Dim images(4, 4) As Image

    For rows = 0 To 4
        For columns = 0 To 4
            images(rows, columns) = kaboom
        Next
    Next

    MessageBox.Show(images(3, 3).Equals(kaboom))

也许你已经计划这样做了,但这里有一个建议。如果您正在创建某种类型的游戏,请将显示与游戏逻辑分开。这意味着,保存磁贴的类型,而不是图像,并进行比较。稍后,您可以向平铺添加一组不同的属性。

代码语言:javascript
复制
    Const TYPE_KABOOM As Integer = 1

    Dim tileType(4, 4) As Integer

    For rows = 0 To 4
        For columns = 0 To 4
            tileType(rows, columns) = TYPE_KABOOM
        Next
    Next

    MessageBox.Show(tileType(3, 3).Equals(TYPE_KABOOM))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52866943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档