加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在C#中执行“静态重载const”?

发布时间:2020-12-15 07:47:38 所属栏目:百科 来源:网络整理
导读:我正在用C#创建一个游戏.每个级别由几个瓷砖组成.每个图块具有某种类型,例如草地,木墙等 理想情况下,我希望有一个基类“Tile”并从中继承为每种类型的tile创建类.我想让tile的属性成为子类的某种static / const / etc成员,因为每种类型的tile都只具有相同的
我正在用C#创建一个游戏.每个级别由几个瓷砖组成.每个图块具有某种类型,例如草地,木墙等

理想情况下,我希望有一个基类“Tile”并从中继承为每种类型的tile创建类.我想让tile的属性成为子类的某种static / const / etc成员,因为每种类型的tile都只具有相同的属性.即我不希望100 Tiles有一个属性都具有相同的值,这似乎相当低效.

问题是你不能在C#中做到这一点.有没有办法实现我想要的?

我的另一个想法是将它们全部分成树,一个只有表示实例的类“Tile”和另一个“TileType”,我从中为每种类型实例化一个对象,并可能通过某种“TileTypeCollection”访问它们.这感觉很奇怪,我宁愿以第一种方式去做.

处理这种情况时是否有任何一般指导原则?

解决方法

您正在寻找FlyWeight设计模式:

http://en.wikipedia.org/wiki/Flyweight_pattern

Flyweight is a software design
pattern. A flyweight is an object that
minimizes memory use by sharing as
much data as possible with other
similar objects; it is a way to use
objects in large numbers when a simple
repeated representation would use an
unacceptable amount of memory.

你在这里有一些C#样本:http://www.dofactory.com/Patterns/PatternFlyweight.aspx#_self2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读