Articles of c # 3.0

Por que as propriedades de tipos anônimos em C # são somente leitura?

Em C #, as propriedades de tipos anônimos são somente leitura: var person = new { Surname = “Smith”, OtherNames = “John” }; person.Surname = “Johnson”; // ERROR: .Surname is read-only É claro que posso declarar uma class real se quiser campos ou propriedades graváveis, mas, independentemente disso, qual é o raciocínio por trás dessa […]

Por que uma expressão lambda deve ser convertida quando fornecida como um parâmetro Delegado simples

Use o método System.Windows.Forms.Control.Invoke (Delegate method) Por que isso gera um erro de tempo de compilation? string str = “woop”; Invoke(() => this.Text = str); // Error: Cannot convert lambda expression to type ‘System.Delegate’ // because it is not a delegate type Ainda isso funciona bem: string str = “woop”; Invoke((Action)(() => this.Text = str)); […]

Como definir o estilo padrão da janela do WPF em app.xaml?

Eu estou tentando definir o estilo padrão para cada janela no meu aplicativo WPF Windows no meu app.xaml. Até agora eu tenho isso em app.xaml: Eu posso obter a janela para aparecer com este estilo ao executar o aplicativo (mas não é designer VS), especificando especificamente a janela para usar este estilo via: Style=”{DynamicResource WindowStyle} […]

O arquivo de metadados ‘.dll’ não foi encontrado

Eu estou trabalhando em um projeto WPF, C # 3.0 e recebo este erro: Error 1 Metadata file ‘WORK=- \Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug \BusinessLogicLayer.dll’ could not be found C:\-=WORK=- \Tools \VersionManagementSystem\VersionManagementSystem\CSC VersionManagementSystem É assim que faço referência aos meus usercontrols: xmlns:vms=”clr-namespace:VersionManagementSystem” Isso acontece depois de cada construção com falha. A única maneira que posso obter a solução para […]

Pesquisa de controle recursiva com LINQ

Se eu quisesse encontrar checkboxs de seleção marcadas em uma página ASP.NET eu poderia usar a seguinte consulta LINQ. var checkBoxes = this.Controls .OfType() .TakeWhile(cb => cb.Checked); Isso funciona bem se as checkboxs de seleção estiverem aninhadas na coleção de controle atual, mas gostaria de saber como estender a pesquisa explorando as collections de controle […]

Qual é o aspecto mais difícil ou mais incompreendido do LINQ?

Antecedentes: No próximo mês, estarei dando três palestras sobre ou, pelo menos, incluindo o LINQ no contexto do C# . Eu gostaria de saber quais tópicos valem a atenção, com base no que as pessoas podem achar difícil de entender, ou no que elas podem ter uma impressão equivocada. Não LINQ especificamente sobre o LINQ […]

Como obter o índice usando o LINQ?

Dada uma fonte de dados como essa: var c = new Car[] { new Car{ Color=”Blue”, Price=28000}, new Car{ Color=”Red”, Price=54000}, new Car{ Color=”Pink”, Price=9999}, // .. }; Como posso encontrar o índice do primeiro carro que satisfaz uma determinada condição com o LINQ? EDITAR: Eu poderia pensar em algo assim, mas parece horrível: int […]

Implementar Tempo Limite Genérico C #

Eu estou procurando boas idéias para implementar uma maneira genérica de ter uma única linha (ou delegado anônimo) de código executar com um tempo limite. TemperamentalClass tc = new TemperamentalClass(); tc.DoSomething(); // normally runs in 30 sec. Want to error at 1 min Eu estou procurando uma solução que possa ser elegantemente implementada em muitos […]

Distinto () com lambda?

Certo, então eu tenho um enumerável e desejo obter valores distintos dele. Usando o System.Linq , é claro que existe um método de extensão chamado Distinct . No caso simples, ele pode ser usado sem parâmetros, como: var distinctValues = myStringList.Distinct(); Muito bem, mas se eu tenho um enumerável de objects para os quais eu […]

Expressões C # Lambda: Por que devo usá-las?

Eu li rapidamente a documentação do Microsoft Lambda Expression . Esse tipo de exemplo me ajudou a entender melhor, no entanto: delegate int del(int i); del myDelegate = x => x * x; int j = myDelegate(5); //j = 25 Ainda assim, não entendo porque é uma inovação dessas. É apenas um método que morre […]