Domande con tag 'c#'

7
risposte

Quando utilizzare le classi astratte anziché le interfacce con i metodi di estensione in C #?

"Classe astratta" e "interfaccia" sono concetti simili, con l'interfaccia che è il più astratto dei due. Un fattore di differenziazione è che le classi astratte forniscono implementazioni del metodo per le classi derivate quando necessario. In C...
posta 31.01.2011 - 10:17
8
risposte

Problemi di denominazione: "ISomething" deve essere rinominato in "Something"? [chiuso]

Il capitolo di Uncle Bob sui nomi in Pulisci codice ti consiglia di evitare codifiche nei nomi, principalmente per quanto riguarda la notazione ungherese. Inoltre, menziona specificamente la rimozione del prefisso I dalle interfacce, ma n...
posta 23.08.2016 - 11:01
16
risposte

Quanta libertà dovrebbe avere un programmatore nella scelta di una lingua e di un framework?

Ho iniziato a lavorare in un'azienda che è principalmente orientata al C #. Abbiamo alcune persone a cui piacciono Java e JRuby, ma la maggior parte dei programmatori qui come C #. Sono stato assunto perché ho molta esperienza nella creazione di...
posta 23.05.2014 - 23:31
9
risposte

Che cosa è un uso appropriato del downcasting?

Downcasting significa lanciare da una classe base (o interfaccia) a una sottoclasse o una classe foglia. Un esempio di downcast potrebbe essere se lanci da System.Object ad un altro tipo. Il downcasting è impopolare, forse un odore di...
posta 26.02.2018 - 14:11
9
risposte

Leggibilità e manutenibilità, caso speciale di scrittura di chiamate di funzioni annidate

Il mio stile di codifica per chiamate di funzioni annidate è 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); Recentemente sono p...
posta 22.02.2018 - 12:27
6
risposte

Perché a differenza di Java, C # è stato creato con parole chiave "nuove" e "virtuali + override"?

In Java non ci sono virtual , new , override parole chiave per la definizione del metodo. Quindi il funzionamento di un metodo è facile da capire. Causa se DerivedClass estende BaseClass e ha un metodo con lo stesso nome e la st...
posta 18.06.2014 - 17:20
7
risposte

Principio della singola responsabilità: come posso evitare la frammentazione del codice?

Sto lavorando a un team in cui il leader del team è un sostenitore virulento dei principi di sviluppo SOLID. Tuttavia, gli manca un sacco di esperienza nell'ottenere software complesso fuori dalla porta. Abbiamo una situazione in cui ha appli...
posta 29.05.2012 - 12:19
7
risposte

Se le funzioni devono eseguire verifiche nulle prima di eseguire il comportamento previsto, si tratta di una progettazione errata?

Quindi non so se questa è una buona o cattiva progettazione del codice, quindi ho pensato che fosse meglio chiedere. Spesso creo metodi che eseguono l'elaborazione dei dati che coinvolgono le classi e spesso eseguo molti controlli nei metodi...
posta 02.07.2018 - 22:50
7
risposte

Come si codificano i tipi di dati algebrici in un linguaggio C # o simile a Java?

Ci sono alcuni problemi che sono facilmente risolvibili con i tipi di dati algebrici, ad esempio un tipo di lista può essere espresso in modo succinto come: data ConsList a = Empty | ConsCell a (ConsList a) consmap f Empty = Empty co...
posta 07.08.2012 - 08:38
2
risposte

Perché 'void' non è consentito come tipo generico in C #

Quali sono state le decisioni di progettazione che hanno sostenuto a favore di void di non essere costruibili e non consentite come tipo generico? Dopotutto è solo uno speciale% vuoto% co_de e avremmo evitato il totale PITA di avere delegat...
posta 20.01.2012 - 14:44