【问题标题】:Override ToString for specified property覆盖指定属性的 ToString
【发布时间】:2020-05-28 10:20:40
【问题描述】:

我有这门课

public class MyClass
{
   public int ID { get; set; }
   public string Name { get; set; }
   public DateTimeOffset MyDate { get; set; }
}

我怎样才能只为 MyDate 属性覆盖 ToString 方法? 所以,当我打电话时

obj.MyDate.ToString()

我会有自己的实现。

【问题讨论】:

  • 我不相信你能做到这一点,因为 ToString() 属于继承自 object 的类型。

标签: c# properties overriding tostring


【解决方案1】:

DateTimeOffset 是一个结构。由于无法继承结构,因此无法覆盖 ToString 方法。

您的选择是使用重载之一来格式化字符串表示 (DateTimeOffset.ToString Method)。

您可以使用Standard date and time format stringsCustom date and time format strings 来获取所需的格式。

【讨论】:

  • 另外一个选项,如果您愿意,可以向您的类添加一个额外的只读 MyDateString 属性,由此 get 方法执行您需要的格式设置。您必须权衡额外属性的“成本”与潜在的重复格式化调用。
猜你喜欢
  • 2020-10-21
  • 2016-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-19
  • 2023-03-24
相关资源
最近更新 更多