To pytanie jest związane, ale nie taka sama jak ta: How do you give a C# Auto-Property a default value?W języku C# czy mogę spowodować, że auto-własność wykona dodatkową pracę przy pomocy atrybutu?
Kocham automatyczne właściwości, ale czasami muszę zrobić coś takiego:
private string someName;
public string SomeName
{
get
{
return someName;
}
set
{
someName = value.Trim();
}
}
Gdybym musiał zrobić to samo wiele Czasem zaczynam żałować, że nie muszę wpisywać tylu linii/znaków kodu. Chcę być w stanie przechwycić wartość i zmienić ją w następujący sposób:
public string Somename
{
get;
[Trim]
set;
}
Czy istnieje sposób na zrobienie czegoś takiego? Czy to byłoby głupie? Czy istnieje lepszy sposób? Jakieś inne ogólne uwagi? Przyznaję, że podany przeze mnie przykład jest nieco hipotetyczny i nie mogę znaleźć dokładnego kodu, który sprawił, że o tym pomyślałem.
Dzięki.
Dzięki, nie Microsoft zapewniają własne rozwiązania do programowania zorientowanego na aspekt? –
Do pewnego stopnia z obiektem ContextBound, ale nie jest to bardzo dobre rozwiązanie dla większości implementacji AOP. Tkacze IL są obecnie znacznie lepsi i mogą pracować z dowolnym typem obiektów, podczas gdy przy użyciu metody Microsoft musisz dziedziczyć po wspólnej klasie. –
Czekaj, "tkacz IL" to coś, co rozszerza cukier składniowy na inny kod? Czy jest to podobne do 'try/finally', koduje magiczne zaklęcie? Sądzę, że błąd w tkaczu IL będzie nieco trudny do wykrycia, ponieważ może to zmylić debuggera. –