C # è un linguaggio di programmazione orientato agli oggetti multiparadigm, gestito e raccolto in modo indesiderato creato da Microsoft in parallelo con la piattaforma .NET
Downcasting significa trasmettere da una classe base (o interfaccia) a una sottoclasse o foglia. Un esempio di downcast potrebbe essere se si esegue il cast da System.Objectun altro tipo. Il downcasting è impopolare, forse un odore di codice: la dottrina orientata agli oggetti è quella di preferire, ad esempio, la …
Quindi non so se questo è un buon o cattivo design del codice, quindi ho pensato che sarebbe meglio chiedere. Creo spesso metodi che eseguono l'elaborazione di dati che coinvolgono classi e spesso eseguo molti controlli nei metodi per assicurarmi di non avere riferimenti null o altri errori prima d'ora. …
Ho iniziato a lavorare in un'azienda principalmente orientata al C #. Abbiamo alcune persone a cui piace Java e JRuby, ma la maggior parte dei programmatori qui come C #. Sono stato assunto perché ho molta esperienza nella creazione di applicazioni Web e perché mi appoggia a tecnologie più recenti …
Sto cercando di aderire il più possibile al principio della responsabilità singola (SRP) e mi sono abituato a un certo modello (per SRP sui metodi) facendo molto affidamento sui delegati. Mi piacerebbe sapere se questo approccio è valido o se ci sono problemi gravi con esso. Ad esempio, per controllare …
Di recente ho iniziato a lavorare in un posto con alcuni sviluppatori molto più vecchi (circa 50+ anni). Hanno lavorato su applicazioni critiche che si occupano di aviazione in cui il sistema non potrebbe andare in crash. Di conseguenza il programmatore più anziano tende a programmare in questo modo. Tende …
Alcuni mesi fa, abbiamo iniziato a sviluppare un'app per controllare un'apparecchiatura di prova sviluppata internamente e registrare una serie di misurazioni. Dovrebbe avere un'interfaccia utente semplice e probabilmente richiederebbe discussioni a causa della registrazione continua che deve aver luogo. Questa applicazione verrà utilizzata per alcuni anni e sarà mantenuta da …
In Visual Studio posso fare clic con il pulsante destro del mouse su un'interfaccia e scegliere Implementa interfaccia o Implementa esplicitamente l'interfaccia. public class Test : ITest { public string Id // Generated by Implement Interface { get { throw new NotImplementedException(); } } string ITest.Id // Generated by Implement …
Cosa è più facile da capire, una grande dichiarazione booleana (abbastanza complessa) o la stessa istruzione suddivisa in metodi predicati (molto codice extra da leggere)? Opzione 1, la grande espressione booleana: private static bool ContextMatchesProp(CurrentSearchContext context, TValToMatch propVal) { return propVal.PropertyId == context.Definition.Id && !repo.ParentId.HasValue || repo.ParentId == propVal.ParentId && …
Oggi ho avuto una discussione con qualcuno. Stavo spiegando i vantaggi di avere un modello di dominio ricco rispetto a un modello di dominio anemico. E ho dimostrato il mio punto con una semplice classe simile a quella: public class Employee { public Employee(string firstName, string lastName) { FirstName = …
Sono un po 'confuso dalla documentazione MSDN # C, che afferma che &e |sono operatori logici e che &&e ||sono operatori condizionali. Continuo chiamando &&, ||e !operatori logici, così mi sbaglio?
In Java non ci sono virtual, new, overrideparole chiave per definizione di metodo. Quindi il funzionamento di un metodo è facile da capire. Perché se DerivedClass estende BaseClass e ha un metodo con lo stesso nome e la stessa firma del BaseClass poi il primario si svolgerà a run-time il …
Sto lavorando in un negozio .Net, C # e ho un collega che continua a insistere sul fatto che dovremmo usare istruzioni Switch gigantesche nel nostro codice con molti "Casi" piuttosto che più approcci orientati agli oggetti. La sua argomentazione risale costantemente al fatto che un'istruzione Switch si compila in …
Esistono alcuni problemi che possono essere facilmente risolti dai tipi di dati algebrici, ad esempio un tipo di elenco può essere espresso in modo molto sintetico come: data ConsList a = Empty | ConsCell a (ConsList a) consmap f Empty = Empty consmap f (ConsCell a b) = ConsCell (f …
recentemente mi sono imbattuto in questo post sul blog di mostri asp.net che parla di problemi con l'utilizzo HttpClientnel modo seguente: using(var client = new HttpClient()) { } Come per il post sul blog, se disponiamo il HttpClientdopo ogni richiesta può mantenere aperte le connessioni TCP. Questo può potenzialmente portare …
Il mio stile di codifica per le chiamate di funzione nidificate è il seguente: var result_h1 = H1(b1); var result_h2 = H2(b2); var result_g1 = G1(result_h1, result_h2); var result_g2 = G2(c1); var a = F(result_g1, result_g2); Di recente sono passato a un dipartimento in cui è molto utilizzato il seguente …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.