在可为空的 DateTime 对象上使用 ToShortDateString() 方法会出现一些问题,为什么?

2023-12-10

我有以下问题。

在课堂上我声明:

vulnerabilityDetailsTable.AddCell(new PdfPCell(new Phrase(currentVuln.Published.ToString(), _fontNormale)) { Border = PdfPCell.NO_BORDER, Padding = 5, MinimumHeight = 30, PaddingTop = 10 });

有趣的部分是:currentVuln.Published.ToString()。这工作正常。

已发表 is a DateTime属性声明为nullable, 这样:

public System.DateTime? Published { get; set; }

问题是在以前的方式中打印的值currentVuln.Published.ToString()是这样的2014年7月18日 00:00:00(时间也包含在日期中)。

我只想显示日期而不显示时间,所以我尝试使用类似的东西:

currentVuln.Published.ToShortDateString()

但它不起作用,我在 Visual Studio 中收到以下错误消息:

错误 4“System.Nullable”不包含 'ToShortDateString' 的定义并且没有扩展方法 “ToShortDateString”接受类型的第一个参数 可以找到“System.Nullable”(您是否缺少 using 指令或程序集 参考?) C:\Develop\EarlyWarning\public\Implementazione\Ver2\PdfReport\PdfVulnerability.cs 93 101 PdfReport

发生这种情况似乎是因为我的 DateTime 字段可为空。

我缺少什么?我该如何解决这个问题?


你说得对,那是因为你DateTime字段可以为空。

的扩展方法DateTime无法用于DateTime?,但要理解为什么,你必须意识到实际上不存在DateTime? class.

最常见的是,我们使用以下方式编写可空类型?语法,如DateTime?, int?等,就像您上面所做的那样。但那只是句法糖 for Nullable<DateTime>, Nullable<int>, etc.

public Nullable<DateTime> Published { get; set; }

而所有那些显然是分开的Nullable类型来自单个generic Nullable<T> struct它包装您的类型并提供两个有用的属性:

  • HasValue(用于测试底层包装类型是否有值),以及
  • Value(用于访问该潜在价值,假设有一个)

首先检查以确保有一个值,然后使用Value属性来访问基础类型(在本例中,DateTime),以及该类型通常可用的任何方法。

if (currentVuln.Published.HasValue)
{
    // not sure what you're doing with it, so I'll just assign it...

    var shortDate = currentVuln.Published.Value.ToShortDateString();
}

对于 C# 6.0 及更高版本,您可以使用空条件代替.Value:

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

在可为空的 DateTime 对象上使用 ToShortDateString() 方法会出现一些问题,为什么? 的相关文章

  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 获取 WPF 控件的所有附加事件处理程序

    我正在开发一个应用程序 在其中动态分配按钮的事件 现在的问题是 我希望获取按钮单击事件的所有事件 因为我希望删除以前的处理程序 我尝试将事件处理程序设置为 null 如下所示 Button Click null 但是我收到了一个无法分配 n
  • 验证插件在更新面板中不起作用

    我有一个更新面板 面板内有文本框和按钮可用 现在我正在使用 jQuery Validation 插件 但是在更新面板中使用时验证插件不起作用 例如 function GetAddressTargetList var objArray new
  • 如何防止 ASP.NET 站点的图像盗链?

    防止人们从我的托管 ASP NET 网站热链接到图像的最佳 最简单方法是什么 我不需要防止所有图像 资源被热链接 我只是想防止热链接到网站上的特定图像 资源 供参考 它托管在 GoDaddy com 上 因此 IIS 技巧可能不起作用 最简
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 为什么我的 ASP.NET MVC 应用程序在单个会话中多次触发 Session_Start?

    我们有一个 MVC NET 应用程序在重新启动时遇到致命错误 在 Session Start 事件处理程序中 我们将会话 id 添加到字典中 在 Session End 处理程序中 我们将其删除 考虑以下请求序列 获取主页 mvc 获取ma
  • 加密和解密图像.net

    谁能给我一个使用 net 和 asp net 加密和解密图像的示例 当我将图像作为二进制数据保存到 SQL Server 中时 我希望对图像进行加密 包含这些名称空间 using System IO using System Securit
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 无需安装即可部署 Expression Encoder SDK

    我试图在使用 Microsoft Expression Encoder 3 SDK 时证明一个概念 我正在尝试将 SDK 部署到我的托管 Web 服务器 以了解更多关于它是否有效以及还需要安装什么的信息 我无法在服务器上进行任何操作 以下是
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 如何将 Roslyn 语义模型返回的类型符号名称与 Mono.Cecil 返回的类型符号名称相匹配?

    我有以下代码 var paramDeclType m semanticModel GetTypeInfo paramDecl Type Type Where paramDeclType ToString returns System Col
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • 获取 URL 中带有井号的 window.location.pathname - javascript

    在我的网页上 我有一个文章列表 根据用户单击的链接隐藏和显示这些文章 a href Sports a a href Weather a 当我将某人链接到我的网站时id附加到 URL 的文章的内容 我想在该文章上触发点击事件 a elemen
  • getActionBar().setDisplayHomeAsUpEnabled(true); preferenceActivity 中的空指针

    我搜索了很多这个问题 但没有找到任何结果relevant 我更新了我的应用程序项目以使用 api 21 现在当我运行偏好活动时 我在该行上得到一个空指针 这是我的代码 与提供的代码相同 eclipse创建新的设置活动时 package co
  • R 滚动日期范围内唯一值的计数

    这个问题已经有一个SQL 的答案 我能够使用 R 在 R 中实现该解决方案sqldf 但是 我一直无法找到使用它来实现它的方法data table 问题是计算滚动日期范围内一列的不同值 例如 并直接引用链接的问题 如果数据如下所示 Date
  • RestKit:映射 JSON 字符串数组

    给定以下 JSON someKey someValue otherKey otherValue features feature1 feature2 feature3 我将此 JSON 映射到NSManagedObjects with RK
  • 在 Inno Setup 中,如何更新通知区域(也称为系统托盘)?

    在 Inno Setup 中 如何更新通知区域 也称为系统托盘 具体来说 我正在 代码 部分安装一项服务 该服务会在托盘中放置一个图标 我想立即删除它 最好还是在代码部分 或者根本不把图标放在那里 但我认为这是不可能的 当我将鼠标移到该图标
  • Numpy 广播

    当我在 Numpy 中进行此操作时会发生什么 a np ones 500 1 b np ones 5000 2 c a b a shape 500 1 b shape 5000 c shape 500 5000 我很难弄清楚这个广播中到底发
  • NSTextField(标签)属性文本:选择

    我有一个 NSTextField 标签 其中包含属性文本 颜色和尺寸与默认值不同 文本稍大且呈绿色 现在 我需要能够选择标签中的文本 以便单击嵌入在属性文本中的超链接 这很好用 但是 当选择文本时 文本格式将恢复为默认值 较小的黑色字体 是
  • 使用 Soundex、Jaro Winkler 和编辑距离 (UTL_MATCH) 匹配 Oracle 重复列值

    我正在尝试找到一种可靠的方法来匹配数据库中的重复人员记录 这些数据存在一些严重的数据质量问题 我也在尝试修复这些问题 但在我获得批准之前 我只能使用现有的数据 我可用的表列有 SURNAME VARCHAR2 43 FORENAME VAR
  • 如何摆脱警告:PWC4011:无法将请求字符编码设置为 UTF-8

    这是在 GlassFish 3 1 上 使用 PrimeFaces over Mojarra 并使用 MyFaces CODI 进行加盐 几乎每个请求都会出现以下消息 警告 PWC4011 无法从上下文 com myapp war 0 1
  • 如何将 IBM DB2 服务器添加到 SQL Server 的链接服务器

    从 Net 我能够连接到 DB2 数据库 首先 我引用了 IBM Data DB2 iSeries 然后我创建一个新的 IBM Data DB2 iSeries iDB2Connection 连接字符串是 DataSource ChaDb2
  • JLabel 不显示

    我正在开发一个程序 但我的 JLabel 没有显示 我的 JButton 工作完美 看起来 但由于某种原因 JLabel 没有出现 我已经在互联网上检查过 但没有找到任何东西 package com hinx client import j
  • 使用 CodeHook 验证时 Amazon Lex 不提示缺少变量

    我正在 Amazon Lex 中构建一个代理 其目的大约有 3 个 所有 3 个意图都有一个已勾选为 必需 的变量 这意味着当用户查询缺少这些变量时 代理必须提示输入这些变量 但是 当我使用 lambda 函数作为 codehook 验证时
  • 内部异步函数完成运行后如何调用外部函数返回?

    这是我的代码 filter getUserName function User return function id User get id id function user return user name 我想要中间函数返回user n
  • 添加一个按钮来查看

    我正在绘制一个图表 然后为输入数据添加一些按钮 标签 文本框 但主布局上的按钮没有显示 如何向视图添加按钮 因为我在视图上使用画布绘制图形 这是绘制画布类 public class DrawCross extends View Paint
  • 在java TailListener中,如何避免重复的日志消息

    我的代码如下 public static void main String args TODO code application logic here File pcounter log new File c development tem
  • 如何在 PyCharm 中禁用此示例程序?

    如何避免每次在 PyCharm 中创建新项目时都出现此问题 可以在以下位置禁用示例欢迎脚本的创建File gt New Project通过取消选中该选项来进行对话Create a main py welcome script与副标题 创建一
  • 内联方法体中的 invokevirtual 的意外指令和参数

    我按照 3 2 6内联方法 中的示例代码进行操作http asm ow2 org current asm transformations pdf 将 MethodNode 内联到调用站点 我的问题是 内联后生成的字节码中显示了一些意外的指令
  • 在 Excel VBA 中查找给定行号后的第一个空行

    我需要find the 第一个空行号在给定的行号之后 请检查下面的图片 例如 假设我当前的行号是 6 那么我的输出应该是 10 像这样的东西吗 function FindFirstEmpty i as long while cells i
  • UML 类关系

    我想确认在识别常见的 UML 类关系时我是否走在正确的轨道上 例如 以下关系是 1stackoverflow 成员和他 她的 stackoverflow 用户帐户被分类为组合关系还是聚合关系 起初我以为这是一个协会 因为该成员 有一个 帐户
  • 在可为空的 DateTime 对象上使用 ToShortDateString() 方法会出现一些问题,为什么?

    我有以下问题 在课堂上我声明 vulnerabilityDetailsTable AddCell new PdfPCell new Phrase currentVuln Published ToString fontNormale Bord