C # è un linguaggio di programmazione orientato agli oggetti multiparadigm, gestito e raccolto in modo indesiderato creato da Microsoft in parallelo con la piattaforma .NET
Quando scrivo codice in Visual Studio, ReSharper (che Dio lo benedica!) Mi suggerisce spesso di cambiare la mia vecchia scuola per il ciclo nella forma foreach più compatta. E spesso, quando accetto questo cambiamento, ReSharper fa un passo avanti e mi suggerisce di cambiarlo di nuovo, in un brillante modulo …
Ho scoperto che ci sono solo 3 modi per dipendenze unit test (mock / stub) statici in C # .NET: Moles TypeMock JustMock Dato che due di questi non sono gratuiti e uno non ha raggiunto la versione 1.0, prendere in giro cose statiche non è troppo facile. Questo ha …
Nel dibattito sui modelli di dominio Rich vs. Anemic, Internet è piena di consigli filosofici ma a corto di esempi autorevoli. L'obiettivo di questa domanda è trovare linee guida definitive ed esempi concreti di modelli di progettazione basati su dominio adeguati. (Idealmente in C #.) Per un esempio reale, questa …
A volte finisco per dover scrivere un metodo o una proprietà per una libreria di classi per la quale non è eccezionale non avere una risposta reale, ma un errore. Qualcosa non può essere determinato, non è disponibile, non trovato, non è attualmente possibile o non ci sono più dati …
Come programmatore C # di lunga data, di recente ho imparato di più sui vantaggi di Resource Acquisition Is Initialization (RAII). In particolare, ho scoperto che il linguaggio C #: using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } ha l'equivalente in C ++: { DbConnection …
Di recente ho iniziato un lavoro di programmazione in C #, ma ho un po 'di esperienza in Haskell. Ma capisco che C # è un linguaggio orientato agli oggetti, non voglio forzare un piolo circolare in un buco quadrato. Ho letto l'articolo Eccezione da Microsoft che afferma: NON restituire …
Per molti aspetti mi piace molto l'idea delle interfacce Fluent, ma con tutte le funzionalità moderne di C # (inizializzatori, lambda, parametri nominati) mi trovo a pensare "ne vale la pena?" E "È questo lo schema giusto per uso?". Qualcuno potrebbe darmi, se non una pratica accettata, almeno la propria …
Stavo esaminando le Linee guida per la codifica AvSol per C # e sono d'accordo con quasi tutto, ma sono davvero curioso di vedere cosa pensano gli altri di una regola specifica. AV1500 I metodi non devono superare 7 affermazioni Un metodo che richiede più di 7 affermazioni sta facendo …
Ho un dibattito con un collega programmatore sul fatto che sia una buona o cattiva pratica modificare un pezzo di codice funzionante solo per renderlo testabile (ad esempio tramite test unitari). La mia opinione è che sia OK, entro i limiti del mantenimento di buone pratiche orientate agli oggetti e …
Dopo quasi 4 anni di esperienza, non ho visto un codice in cui viene utilizzata la parola chiave yield . Qualcuno può mostrarmi un uso pratico (insieme alla spiegazione) di questa parola chiave e, in tal caso, non ci sono altri modi più semplici per completare ciò che può fare?
A mio avviso, la partialparola chiave non fa altro che consentire a una classe di essere suddivisa tra più file di origine. C'è qualche motivo per farlo se non per l'organizzazione del codice? L'ho visto usato per quello nelle classi di UI generate. Sembra una ragione scadente per creare un'intera …
Gli standard di codifica esistenti in un grande progetto C # includono una regola secondo la quale tutti i nomi dei tipi devono essere pienamente qualificati, vietando l'impiego della direttiva "utilizzo". Quindi, piuttosto che il familiare: using System.Collections.Generic; .... other stuff .... List<string> myList = new List<string>(); (Probabilmente non è …
"Classe astratta" e "interfaccia" sono concetti simili, con l'interfaccia che è la più astratta delle due. Un fattore di differenziazione è che le classi astratte forniscono implementazioni di metodi per le classi derivate quando necessario. In C #, tuttavia, questo fattore di differenziazione è stato ridotto dalla recente introduzione di …
Mi piacerebbe sapere Nel progetto C # o VB.NET dovremmo includere la cartella PACKAGE (cartella del pacchetto nugget creata nella radice del mio progetto che contiene i file nupkg e altro contenuto) nel nostro repository di controllo del codice sorgente (Git per esempio).
Il capitolo di zio Bob sui nomi in Clean Code raccomanda di evitare la codifica nei nomi, principalmente per quanto riguarda la notazione ungherese. Inoltre menziona specificamente la rimozione del Iprefisso dalle interfacce, ma non mostra esempi di ciò. Supponiamo che: L'uso dell'interfaccia è principalmente quello di raggiungere la testabilità …
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.