C# 在类属性内转换值类型

C# 在类属性内转换值类型,c#,C#,您好,我有一个简单的问题,我正在尝试将类内的值类型(值是DateTime,我想将其转换为字符串)转换为另一个类型,到目前为止,我已经尝试了: private string timestamp; public string timestamp { get => timestamp; set { if (value != timestamp) {

您好,我有一个简单的问题,我正在尝试将类内的值类型(值是DateTime,我想将其转换为字符串)转换为另一个类型,到目前为止,我已经尝试了:

    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可能没有你那么熟练。如果这对他们来说是显而易见的,他们可能不会发布关于它的信息。