如何使C#中的类,可以转换为DateTime?

前端之家收集整理的这篇文章主要介绍了如何使C#中的类,可以转换为DateTime?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我如何使类可以转换为DateTime.但是当我打包的时候,我需要投下我的课.例如:
object date1 = new MyDateTime();
DateTime date2 = (DateTime)date1;

我需要直接这个工作的例子.

我知道如何做,但我的方式将没有包装工作.我不知道有没有办法.

请帮忙.

PS.我需要直接将对象转换为DateTime.所以,MyDateTime必须先包装好.显式工作正常,但如果您有打包对象,则无效.而且它必须使用普通的铸造来铸造

(DateTime) (object) MyDateTime

解决方法

你似乎是继承,能够将派生类实例“存储”在基本类型的变量中,如下所示:
Stream s = new FileStream();

事实上,它是一个FileStream在引擎盖下不会丢失,只因为你指向它与Stream护目镜.

DateTime是一个结构体,结构继承不受支持 – 所以这是不可能的.

另一种替代方案是user-defined conversions的显式关键字(在语法上看起来像cast).这允许您至少在您的课程和DateTime之间交换更多的糖.

http://msdn.microsoft.com/en-us/library/xhbhezf4(v=vs.71).aspx

这可能看起来像:

class MyDateTime
{
    private DateTime _inner;

    public static explicit operator DateTime(MyDateTime mdt)
    {
        return mdt._inner;
    }
}

您可以使用对等隐式关键字执行相同操作:

public static implicit operator DateTime(MyDateTime mdt)
{
    return mdt._inner;
}

那么那么你就可以隐含地进行“投射”:

DateTime date = new MyDateTime();

另一个替代方法是使用自己的适配器类包装DateTime,内部使用DateTime,然后继承此类来创建MyDateTime.然后,您可以使用该适配器类,而不是在代码库中使用DateTime.

我已经看到类似的事情与SmartDateTime样式类,其中DateTime更好地了解null,如果它被设置.

猜你在找的C#相关文章