XNA C# 中的基本继承
我正在尝试在 C# 中扩展 System.TimeSpan,因为我需要一个额外的方法将 GameTime 转换为 TimeSpan。这就是我尝试过的:
class TimeSpanner : TimeSpan
{
}
显然不可能扩展 Timespan 结构。有谁知道为什么不能延长吗?我该如何正确地完成这项工作?
I'm trying to expand System.TimeSpan in C# because I need a extra method to convert the GameTime to a TimeSpan. This is what i tried:
class TimeSpanner : TimeSpan
{
}
apperently it's not possible to extend the Timespan struct. Does anyone know why it can't be extended? And how do I properly make this work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你采取了完全错误的方法。
GameTime
具有成员属性ElapsedGameTime
和TotalGameTime
,它们提供组成GameTime 的两个不同的
TimeSpan
对象。像这样使用它们:You're taking completely the wrong approach.
GameTime
has member propertiesElapsedGameTime
andTotalGameTime
that provide the two differentTimeSpan
s that make up aGameTime
object. Use them like this:您不能从
struct
继承。在 结构 上形成 MSDN:
作为您尝试的替代方法,请考虑使用扩展方法。
You can not inherit from a
struct
.Form MSDN on structs:
As an alternative to what you are trying, consider using extension methods.
TimeSpan 是一个
struct
,并且结构(属于值类型)不能被子类化。您可能应该研究使用运算符来执行转换。你可以这样做:
然后你可以这样使用它:
A TimeSpan is a
struct
and structs (which are a value type) cannot be subclassed. You should probably investigate using an operator to perform a conversion.You could do something like this:
You could then use this like this:
如果您需要一个额外的方法来进行转换,那么为什么不直接创建一个扩展方法呢?
If you need an extra method to do a conversion then why not just make an extension method then?