DisplayFormat属性如何工作?

时间:2015-07-11 23:07:19

标签: c# attributes formatting

我想使用自定义属性自定义值,因此当我调用ToString()时,我的属性属性将用于格式化。

调用int.ToString()时,DisplayFormat attrbiute(如果已定义)用于格式化。

但这是如何运作的?它在哪里工作?

如果我创建一个类如下

public class WeatherSingle
{
   private Single value;

   public override string ToString()
   {
      return "-> " + value.toString();
   }
}

然后在类的实例上使用属性我的ToString()方法如何才能访问属性属性?该属性未在我的类中定义,而是在另一个类中定义该类的实例。

所以说我创建了一个WeatherAttribute来获取描述和其他一些属性,并在另一个类中使用它,如下所示

public class MyRecord
{
    [WeatherAttribute(description = "The current temperature in Celsius", format = "0.0", suffix = "Degree")]
    public WeatherSingle Temperature { get; set; }
}

如果我调用MyRecord.Temperature.ToString(),它将触发我重写的ToString()方法,但该方法不知道我在MyRecord类中添加属性的属性。

MyRecord类我可以看到我的属性,但这需要我为该类和我使用该属性的任何类编码。

那么DisplayFormatAttribute如何适用于任何类中的任何属性?

如何编写自己的属性格式化程序,其行为类似于DisplayFormatAttriute

0 个答案:

没有答案