Domande taggate «c#»

C # è un linguaggio di programmazione orientato agli oggetti multiparadigm, gestito e raccolto in modo indesiderato creato da Microsoft in parallelo con la piattaforma .NET



6
Quali sono gli svantaggi di tipi immutabili?
Mi vedo usare tipi sempre più immutabili quando non si prevede che le istanze della classe vengano modificate . Richiede più lavoro (vedere l'esempio seguente), ma semplifica l'utilizzo dei tipi in un ambiente multithread. Allo stesso tempo, raramente vedo tipi immutabili in altre applicazioni, anche quando la mutabilità non gioverebbe …
12 c#  immutability 

1
Utilizzo del modello visitatore con gerarchia di oggetti di grandi dimensioni
Contesto Ho usato con una gerarchia di oggetti (un albero delle espressioni) un modello di visitatore "pseudo" (pseudo, poiché in esso non viene utilizzato il doppio dispacciamento): public interface MyInterface { void Accept(SomeClass operationClass); } public class MyImpl : MyInterface { public void Accept(SomeClass operationClass) { operationClass.DoSomething(); operationClass.DoSomethingElse(); // ... …






2
L'interfaccia IComparable è obsoleta / "dannosa"?
IComparable funziona solo in un modo Diciamo che hai una Employeelezione. In una vista, vuoi mostrare tutto Employeesordinato per nome - in un'altra, per indirizzo. Come lo farai? Non con IComparable, almeno non in alcun modo idiomatico. IComparable ha la logica nel posto sbagliato L'interfaccia viene utilizzata chiamando .Sort(). In …
11 c#  sorting  comparison 

2
Unit test per testare la creazione di un oggetto dominio
Ho un Unit Test, che assomiglia a questo: [Test] public void Should_create_person() { Assert.DoesNotThrow(() => new Person(Guid.NewGuid(), new DateTime(1972, 01, 01)); } Sto affermando che qui viene creato un oggetto Person, ovvero che la validazione non fallisce. Ad esempio, se il Guid è nullo o la data di nascita è …



4
Come specificare una precondizione (LSP) in un'interfaccia in C #?
Diciamo che abbiamo la seguente interfaccia: interface IDatabase { string ConnectionString{get;set;} void ExecuteNoQuery(string sql); void ExecuteNoQuery(string[] sql); //Various other methods all requiring ConnectionString to be set } Il presupposto è che ConnectionString deve essere impostato / inizializzato prima di poter eseguire uno qualsiasi dei metodi. Questa condizione preliminare può essere …


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.