najpierw strzelam, potem pytania
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
...
public class BaseClass
{
... GetValue() ..
... SetValue() ...
}
public class WCConfig : BaseClass
{
public WCConfig(Arg arg) : base(arg)
{
}
[Display(Name = "URL główny", Order = 20)]
public string Url
{
get { return GetValue("Url", " "); }
set { SetValue("Url", value); }
}
[Display(Name = "Drugi parametr", Order = 30)]
public string Drugi
{
get { return GetValue("Drugi", "(defalt) "); }
set { SetValue("Drugi", value); }
}
}
Od lat Ctrl-C Ctrl-V, ale to mnie dręczy niesamowicie.
najbardziej mnie męczą słowa na tym przykładzie Url i Drugie. Zbawienny byłby trick, żeby właściwość wiedziała o sobie samej, i sama wypracowała nazwę, z jaką ma pracować
W Javie generowało się StackTrace (bez rzucania wyjątkiem), brało konkretną ramkę od wierzchu (drugą, trzecią - trzeba raz sprawdzić) i tam była nazwa metody. Hipotetycznie wywołanie metody get_Url i get_Drugi (tu przemieszczam się do pisowni C#), oczywiste że coś z tym można zrobić,
Ale Java nie ma na poziomie syntaktycznych własciwości (ma przez konwencję, zresztą dość słabą).
Jaki fajny trick można zastosować?
Aha, w/w klasa bindowane są do pól edycyjnych, i bardzo preferuję takie jednostopniowe dziedziczenie, niż obserwator, który kopiuje.
Koszt CPU jest nieistotny, i tak człowiek jest najwolniejszy.