Articles of azione

Passa il codice a un metodo come argomento

Ho una lista di metodi che fanno praticamente la stessa cosa, tranne alcune differenze: void DoWork(string parameter1, string parameter2) { //Common code … //Custom code … //Common code … } Voglio ottimizzare la soluzione riutilizzando il codice comune passando il codice personalizzato da un altro metodo. Presumo di dover utilizzare un’azione con parametri per realizzare […]

È una ctriggers pratica usare Action e Func tutto il tempo invece di creare delegati corrispondenti?

Un sacco di tempo durante la creazione di eventi semplici nel mio programma che le altre classi possono sottoscrivere invece di creare un delegato e creare un evento dal delegato. Creo semplicemente l’evento con Action o Func per evitare di dover creare il delegato. C’è qualche svantaggio a fare questo?

Delegato all’azione Come ottenere l’istanza che chiama il metodo

Ho un’azione e mi chiedo come potrei accedere all’istanza che chiama il metodo. Esempio: this.FindInstance(() => this.InstanceOfAClass.Method()); this.FindInstance(() => this.InstanceOfAClass2.Method()); this.FindInstance(() => this.InstanceOfAClass3.Method()); public void FindInstance(Action action) { // The action is this.InstanceOfAClass.Method(); and I want to get the “Instance” // from “action” } Grazie

Sincronizzare le azioni in Silverlight

Ho un’applicazione Silverlight che utilizza le azioni per ottenere dati dal modello (che riceve nuovamente i dati dai servizi WCF). Ho bisogno di sincronizzare in qualche modo due ActionCallbacks, o di aspettare per loro, e quindi eseguire del codice. Esempio: _model.GetMyTypeList(list => { MyTypeList.AddRange(list); }); _model.GetStigTypeList(list => { StigTypeList.AddRange(list); }); doSomethingWhenBothHaveReturned(); So che posso usare […]

Spiega i delegati di .NET

Quindi leggo MSDN e Stack Overflow. Capisco cosa fa l’Action Delegate in generale, ma non è fare clic non importa quanti esempi faccio. In generale, lo stesso vale per l’idea dei delegati. Quindi questa è la mia domanda. Quando hai una funzione come questa: public GetCustomers(Action<IEnumerable,Exception> callBack) { } Cos’è questo e cosa dovrei passare […]

C # Elenco azioni / funzioni

Ho un programma che deve eseguire una funzione secondo un Enum e mi chiedo se ci sia un altro modo per farlo: enum FunctionType { Addition = 0, Substraction = 1, Mutiplication = 2, Division = 3 } void ExecuteFunction(FunctionType Function) { switch(Function) { case FunctionType.Addition: Addition(); break; case FunctionType.Substraction: Subsctration(); break; … default: … […]

Evitare l’errore “Uso della variabile locale non assegnata”

Ho due metodi che sono equivalenti a questo (scusate l’esempio inventato): public void WithResource(Action action) { using (var resource = GetResource()) { action(resource); } } public void Test() { int id; SomeObject someObject; WithResource((resource) => { id = 1; someObject = SomeClass.SomeStaticMethod(resource); }); Assert.IsNotNull(someObject); Assert.AreEqual(id, someObject.Id); } (C’è un po ‘di logica nella chiamata WithResource […]

C #: crea un’azione nulla da fare sull’istanza della class

Ho una class in cui l’utente può passare un’azione (o meno). public class FooClass : BaseClass { public FooClass() : this((o) => ()) //This doesn’t work… { } public FooClass(Action myAction) : base(myAction) { } } Fondamentalmente, non posso passare nulla nella mia class base per l’ Action . Ma, allo stesso tempo, non voglio […]

Aiuta a comprendere la syntax di C # mentre invochi una nuova azione

Sono nuovo di c # e non capisco la syntax di invocare una nuova azione o anche ciò che un’azione è. Dalla mia comprensione in Port1_DataReceived, devo creare un’azione perché sono in una nuova impronta … Qualcuno può approfondire perché ho bisogno di fare questo? public Form1() { InitializeComponent(); SerialPort Port1 = new SerialPort(“COM11”, 57600, […]

Ottieni parametri dall’azione

Come ottengo i parametri passati in Action ? L’esempio di codice dovrebbe evidenziare ciò che sto cercando di ottenere. Mi dispiace che sia un po ‘lungo. class Program { static void Main(string[] args) { Foo foo = new Foo(); foo.GetParams(x => x.Bar(7, “hello”)); } } class Foo { public void Bar(int val, string thing) { […]