mam klasy z niektórych funkcji wirtualnych, udawajmy jest to jeden z nich:Zastępowanie metody wirtualne, gdy instancji klasy
public class AClassWhatever
{
protected virtual string DoAThingToAString(string inputString)
{
return inputString + "blah";
}
}
chcę instancję tej klasy podczas nadrzędnymi „DoAThingToAString” inline, podobnie jak I można zadeklarować właściwości inline w deklaracji, w następujący sposób:
...
AClassWhatever instance = new AClassWhatever
{
DoAThingToAString = new function(string inputString)
{
return inputString + inputString + " fill my eyes."
}
}
...
a teraz „przykład”, DoAThingToAString jest przesłonięta z tej definicji. Muszę być w stanie zdefiniować domyślne zachowanie w definicji klasy i tylko przesłonić go w razie potrzeby, inaczej różne czasy i nie chcę proliferować pęczku podklas, aby to zrobić.
Wiem, że potrzebuję korzystać z delegatów lub czegoś podobnego, ale byłem poza grą składni zbyt długo, a Google dawało mi zbyt wiele nieistotnych informacji.
To składnia byłem szukam, ale głupie pytanie. W DoAThingToAString używam metody rozszerzania kontrolera, która jest wywoływana z działania kontrolera jako takiego: 'this.DoExtensionMethod (someString);' Nie mam już odniesienia do "tego" teraz, gdy jestem w Func definicja. Czy istnieje sposób na uzyskanie odniesienia do osoby dzwoniącej lub czy muszę przekazać ją razem z innymi danymi wejściowymi? – kamii
@kamii, Będziesz musiał przekazać odniesienie do obiektu lub inne określone wartości, których potrzebujesz. Jest to funkcja anonimowa, więc nie ma pojęcia o instancji. (proszę sprawdzić fakt). – gunr2171