I was working in a custom control today that exposes a dependency property of type System.Collections.ObjectModel.ObservableCollection<System.DateTime>. After typing that type name a few times I decided it was time for a using statement at the top of the file to shorten things up. But even ObservableCollection<DateTime> is pretty long.
I recalled reading about how applying the using statement to create aliases. I wasn’t sure if it would, but sure enough, the following worked like a charm:
1: using DateTimeList = System.Collections.ObjectModel.ObservableCollection<System.DateTime>;
That lets me declare my property as a DateTimeList, shortening up the syntax significantly. Here’s a comparison.
With a typical “using System.Collections.ObjectModel”:
1: public static ObservableCollection<DateTime> GetSelectedDates(Calendar calendar)
2: {
3: return (ObservableCollection<DateTime>)calendar.GetValue(SelectedDatesProperty);
4: }
With the DateTimeList alias:
1: public static DateTimeList GetSelectedDates(Calendar calendar)
2: {
3: return (DateTimeList)calendar.GetValue(SelectedDatesProperty);
4: }
The usage feels really nice, but I wondered what others think. Is this alias really cool or just plain wrong?