Pytanie dotyczące klasy i nawiasów kwadratowych

0

Witam,

Jest oto klasa:

 
[ValueConversion(typeof(double), typeof(double))]
public class FarenheitToCelciusConverter : IValueConverter
{
    #region IValueConverter Members
    public object Convert(object value, Type targetType, 
           object parameter, System.Globalization.CultureInfo culture)
    {
        string sourceValue = value.ToString();
        double decimalValue = 0;
        if (Double.TryParse(sourceValue, out decimalValue))
        {
            return (decimalValue - 32.0) * (5.0 / 9.0);
        }
        return value;
    }
 
    public object ConvertBack(object value, Type targetType, 
           object parameter, System.Globalization.CultureInfo culture)
    {
        string sourceValue = value.ToString();
        double decimalValue = 0;
        if (Double.TryParse(sourceValue, out decimalValue))
        {
            return (decimalValue * (9.0 / 5.0)) + 32.0;
        }
        return value;
    }
    #endregion
}

Nigdy nie spotkałem się z takim fragmentem: [ValueConversion(typeof(double), typeof(double))] i też nie wiem do czego on służy, po prostu wygląda jak funkcja, która uzyskuje określone typy danych.

Pozdrawiam

1

To nie jest funkcja, to jest atrybut.

Atrybuty służą do metaopisu klas, metod, itp. Na klasach opisanych danym atrybutem można później wykonać jakąś operację, tzn. metoda ją wykonująca będzie operowała np. tylko na klasach udekorowanych danym atrybutem i zgodnie z jego definicją.
Np., jeśli oznaczysz jakaś właściwość jako [XmlIgnore], to podczas serializacji obiektu tej klasy do pliku XML, ta właściwość nie zostanie zserializowana.

1 użytkowników online, w tym zalogowanych: 0, gości: 1