C# 在类属性内转换值类型
您好,我有一个简单的问题,我正在尝试将类内的值类型(值是DateTime,我想将其转换为字符串)转换为另一个类型,到目前为止,我已经尝试了:C# 在类属性内转换值类型,c#,C#,您好,我有一个简单的问题,我正在尝试将类内的值类型(值是DateTime,我想将其转换为字符串)转换为另一个类型,到目前为止,我已经尝试了: private string timestamp; public string timestamp { get => timestamp; set { if (value != timestamp) {
private string timestamp;
public string timestamp
{
get => timestamp;
set
{
if (value != timestamp)
{
timestamp = (DateTime)value.ToString("dd'/'MM'/'yyyy HH':'mm':'ss.fff");
}
}
}
但是没有运气。是否有解决方案???您正在使用ToString和DateTime所需的格式化程序将字符串转换为字符串,然后将其强制转换为必须分配给字符串的DateTime 显然,这是行不通的 如果尝试验证新属性值(值)是否可视为有效字符串,则使用验证给定字符串是否为有效的日期时间。如果是,请将字符串指定给属性的支持字段
set
{
if (value != timestamp && DateTime.TryParseExact(value,
"dd'/'MM'/'yyyy HH':'mm':'ss.fff",
CultureInfo.CurrentCulture,
DateTimeStyles.None, DateTime out d )
{
timestamp = value;
}
}
您必须稍微修改一下TryParseExact方法的参数,以查看在您的场景中什么是有效的。使用
DateTime.TryParseExact
。请更具体一些。您有一个字符串属性和一个字符串支持字段,为什么要将其转换为DateTime
?如果您想要一个DateTime
属性,为什么不声明它呢?在任何情况下,代码最明显的问题是您试图使用cast操作符将字符串
转换为日期时间
。这不起作用。我想这是另一个“我想要一个特定格式的日期时间”问题。您认为(DateTime)value.ToString(“dd'/'MM'/'yyyy HH':'MM':'ss.fff”)
返回什么?它显然将字符串强制转换为DateTime
。但是,时间戳
是一个字符串。因此,您的assignemtn失败。@DanielA.White何时可以将日期时间分配给字符串?可能不说“显然”?OP可能没有你那么熟练。如果这对他们来说是显而易见的,他们可能不会发布关于它的信息。