如何在 C# 中创建可以转换为 DateTime 的类?

2024-05-06

我怎样才能制作可以转换为 DateTime 的类。但我需要在班级拥挤的时候进行选角。例如:

object date1 = new MyDateTime();
DateTime date2 = (DateTime)date1;

我直接需要这个工作示例。

我知道怎么做,但我的方法无需包装即可工作。我不确定是否有办法做到这一点。

请帮忙。

附言。我需要将对象直接转换为 DateTime。所以,MyDateTime必须先打包。显式效果很好,但如果您有打包对象,则没有帮助。它必须使用普通铸造来铸造,例如

(DateTime) (object) MyDateTime

您似乎追求的是继承,能够将派生类实例“存储”在基类型的变量中,如下所示:

Stream s = new FileStream();

事实上,它是一个FileStream引擎盖下的内容不会仅仅因为您用Stream护目镜。

DateTime is a struct, and struct不支持继承 - 所以这是not可能的。

替代 is the explicit关键字为用户定义的转换 https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/user-defined-conversion-operators(语法上looking就像演员表一样)。这至少可以让你在你的班级和DateTime加更多的糖。

这可能看起来像:

class MyDateTime
{
    private DateTime _inner;

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

你可以对对方做同样的事情implicit关键词:

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

然后,您可以隐式进行“转换”:

DateTime date = new MyDateTime();

另一种选择是包裹DateTime使用您自己的适配器类,该类在内部使用DateTime然后继承这个类来创建MyDateTime。然后而不是使用DateTime在您的代码库中,您使用此适配器类。

我见过类似的事情SmartDateTime风格类,其中DateTime对空值以及是否已设置有更好的理解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# 中创建可以转换为 DateTime 的类? 的相关文章

随机推荐

  • 获取在电池电量降至 0% 之前我还有多少时间 Android

    我能知道电池电量降至 0 之前还有多少时间吗 使用的东西CountDownTimer并计算一下电池消耗了多少毫安时 有人可以帮我做吗 您无法准确猜测电池还剩多少时间放电 您只能做一些估计 您可以通过注册接收器进行操作 在广播接收器的帮助下获
  • matplotlib 中的背对背直方图

    有一个很好的函数可以绘制背靠背直方图 http www mathworks co uk matlabcentral fileexchange 23312在Matlab中 我需要在 matplotlib 中创建一个类似的图表 谁能展示一个有效
  • 在 IntelliJ 中设置 Glassfish 配置时出现“管理端口配置未找到”错误

    在 IntelliJ IDEA 中设置 Glassfish 时 我收到以下错误消息 未找到管理端口配置 现在我到处搜索 但没有找到可以设置管理端口的地方 搜索谷歌我发现的是JavaRanch 上的死链接 http www coderanch
  • 即使在签出到另一个分支后也无法删除本地分支

    我正在尝试删除我的本地分支并尝试了我在这里找到的大多数解决方案 即签出到另一个分支然后运行git branch D or d
  • 如何快速更改 SKSpriteNode 的颜色?

    我创建了一个游戏SKSpriteNode那是黑色的 当用户触摸屏幕时我想要SKSpriteNode更改为白色 我已经用谷歌搜索了一切 并尝试了很多不同的策略 但没有成功 有谁知道如何做到这一点 这是我的场景的代码 var blackBird
  • 将 ART.xcodeproj 添加到 Library 后 Xcode 崩溃

    我正在使用 React Native 开发一个应用程序 将 ART xcodeproj 添加到 Library 后 Xcode 崩溃了 这是版本信息 版本 9 0 beta 4 9M189t Some 崩溃的日志如下 Process Xco
  • 通过鼠标和触摸在画布上绘图

    我想在画布上绘图 使用鼠标效果很好 但我必须如何修改代码才能使其在 iPad 或 Nexus 上运行 link http jsfiddle net FgNQk 6 var canvas document getElementById can
  • PHP-MySQL 或 MySQLi 中哪个最快?

    我想知道是否有人对这种二分法有任何第一手经验 一些博客说 mysql 扩展比 mysqli 更快 这是真的 我只是问速度 我知道 mysqli 具有旧扩展中不存在的功能 在我看到的大多数基准测试中 MySQL 扩展比 MySQLi 稍快一些
  • 无逻辑模板(例如胡子)有什么优点?

    最近 我遇到了mustache http mustache github com 据称是无逻辑模板 然而 没有解释为什么它是以无逻辑的方式设计的 换句话说 无逻辑模板的优点是什么 换句话说 它可以防止你搬起石头砸自己的脚 在过去的 JSP
  • .NET VM 是编译器还是解释器?

    NET 的虚拟机是编译 CIL 字节码 然后在最低级别 CPU 汇编程序 执行代码 还是解释器 读取以下指令并执行它们 NET 的虚拟机吗 编译 CIL 字节码 然后 在最低级别执行代码 CPU 汇编器 是的 它是 CLR 的一个组件 称为
  • 如何计算两个字符串向量之间的余弦相似度

    我有 2 个维度为 6 的向量 我想要一个介于 0 和 1 之间的数字 a c HDa 2Pb 2 BxU BuQ Bve b c HCK 2Pb 2 09 F G 谁能解释我应该做什么 使用lsa包和该包的手册 create some f
  • 从我的应用程序阻止/取消阻止应用程序:Android

    我想从我的应用程序阻止 取消阻止 用户无法使用 访问被阻止的应用程序 Android 设备中的某些应用程序 但我找不到任何解决方案 想法 I read Android如何以编程方式隐藏启动器图标 https stackoverflow co
  • Codeigniter 分页不呈现分页链接

    你好我有以下代码 this gt load gt library pagination this gt data products this gt products model gt get products and category th
  • 声纳+MS SQL数据库

    我正在尝试使用 mssql 服务器数据库初始化声纳 但我不能 使用 Microsoft SQL Server Management Studio 我创建了用户名 sonar 和密码 sonar 的用户 并向同时创建的 sonar 数据库授予
  • Python twill:下载可通过 PHP 脚本访问的文件

    I use twill在受登录表单保护的网站上导航 from twill commands import go http www example com login index php fv login form identifiant l
  • Android 自定义视图忽略 XML 中的“android:enabled”?

    我正在设置android enabled false 在自定义视图上 但它似乎对isEnabled 财产 这是一个简单的测试用例 public class TestView extends View public TestView Cont
  • .NET(或 MFC)的高速图形控件?

    我需要编写一个数字示波器类型的应用程序 有很多很棒的静态绘图控件 但我需要一些可以绘制每秒处理 4000 个样本的 16 条轨迹的东西 有人知道 NET 的高速图形控件吗 我什至会选择 MFC 因为它可以封装到 NET 控件中 谢谢您的帮助
  • PHP 中的 MPTT(修改的先序树遍历)问题

    我的第一篇文章在这里 看来这是一个变得明智的地方 我目前正在进行一些测试 第一次尝试使用 MPTT 修改的预序树遍历 方法在 PHP 的帮助下将数据存储在 Mysql 数据库中 但是 我试图找到最注重性能的方法来获取特定级别上的所有列表元素
  • 从 Vowpal Wabbit 的内存中读取数据?

    有没有办法发送数据来训练 Vowpal Wabbit 中的模型而不将其写入磁盘 这就是我正在尝试做的事情 我有一个相对较大的 csv 数据集 大约 2gb 可以毫无问题地容纳在内存中 我将它在 R 中加载到数据框中 并且有一个函数将该数据框
  • 如何在 C# 中创建可以转换为 DateTime 的类?

    我怎样才能制作可以转换为 DateTime 的类 但我需要在班级拥挤的时候进行选角 例如 object date1 new MyDateTime DateTime date2 DateTime date1 我直接需要这个工作示例 我知道怎么