Thread de Informática


Tópico em 'Off-Topics' criado por BinSlashBash em 15/04/2015, 16:45.
Páginas (5): « Anterior 1 2 3 4 5 Próximo »
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
0 votos
61 respostas neste tópico
 #31
OU POVAO
ME FALAR UMA COISA
Casting faz upcast e downcast, o mesmo pro "as" ?
http://www.java2s.com/Tutorials/CSharp/C...erator.htm
vi aqui isso "The as operator performs a downcast " e fiquei com dúvida
Responder
 #32
C# É FODA DEMAIS
PARAMS 10/10
[Imagem: d8D8xTh.png]
Responder
 #33
Vou fazer uma breve explicação do que entendi.

IEnumerable<T>, Linq & yield

Esses dias comentei na shout sobre a questão de que um IEnumerable<T>/IEnumerable não guarda dados/elementos para ser passado ao foreach, então fiquei com a dúvida de como o Linq trabalha.
Pois bem, encontrei a resposta, enquanto eu explico, vou citar algumas coisas da documentação da microsoft.

O Linq não armazena dados, ele apenas retorna um IEnumerable<T>, ou seja, ele gera uma classe para passar ao foreach.
Uma citação do yield:
"Using yield to define an iterator removes the need for an explicit extra class (the class that holds the state for an enumeration, see IEnumerator<T> for an example) when you implement the IEnumerable and IEnumerator pattern for a custom collection type."
O yield gera automaticamente uma classe que implementa o IEnumerator<T> e retorna objects para o iterator.
"The yield type of an iterator that returns IEnumerable or IEnumerator is object."
Depois fui dar uma olhada na classe estática Enumerable, que é onde fica os métodos Where, Select, etc...
Pois bem, ele realmente usa yield!
Método Where:
Spoiler:  
[Imagem: BDzlWal.png]
[Imagem: 7zC9x1l.png]
Ou seja, ele retorna com o yield e gera automaticamente a classe que implementa o IEnumerable<T>, ele não armazena os elementos, ele apenas retorna para o foreach diretamente.


Quem quiser dar uma olhada, aqui o código das interfaces citadas:

Código PHP:
public interface IDisposable {
void Dispose();
}
public interface 
IEnumerator
{
bool MoveNext();
Object Current {
get
}
void Reset();
}
public interface 
IEnumerator<out T> : IDisposableIEnumerator
   
new T Current {
get
}
}
public interface 
IEnumerable
{
IEnumerator GetEnumerator();
}
public interface 
IEnumerable<out T> : IEnumerable
{
new 
IEnumerator<TGetEnumerator();
}
public interface 
IGrouping<out TKeyout TElement> : IEnumerable<TElement>
{
TKey Key get; }


( no post diz código php mas é c# ) -q

@Morgiana @Thelight52 @BinSlashBash @Zack Fair
Responder
 #34
Que orgulho. Cry
Responder
 #35
Se eu tenho um vetor denominado assim:
int numDias[] = {31,28,31,30,31,30,31,31,30,31,30,31};

E eu aplicar por exemplo numDias[1] = nomedavariavel, ele sobrescreve o valor "31"?
Responder
 #36
Não ,ele sobrescreve o valor 28
Indices de arrays começam por zero, sempre
Responder
 #37
(24/04/2015, 00:46)Thelight52 Escreveu: Não ,ele sobrescreve o valor de 28

Ah sim, eu errei o valor do vetor, my bad, mas a dúvida era se ia sobrescrever mesmo, valeu Light. :3
Responder
 #38
VEM
https://code.visualstudio.com/
@Thelight52 @zack fair @morgiana @BinSlashBash
Novo editor da microsoft, ainda ta em fase beta mas parece promissor :3
Mas acho que ainda n vai substituir meu precioso sublime text -q
Responder
 #39
Que [Imagem: kO4kIEL.png]
Microsoft tá maluca (8)
Responder
 #40
(24/04/2015, 00:33)Zutto Escreveu: Se eu tenho um vetor denominado assim:
int numDias[] = {31,28,31,30,31,30,31,31,30,31,30,31};

E eu aplicar por exemplo numDias[1] = nomedavariavel, ele sobrescreve o valor "31"?

(24/04/2015, 00:46)Thelight52 Escreveu: Não ,ele sobrescreve o valor 28
Indices de arrays começam por zero, sempre

Exatamente, este é um pequeno detalhe que sempre confunde os programadores, principalmente os iniciantes, mas esta regra é válida para todas as linguagens, até mesmo as procedurais ou de banco de dados.

Índice sempre começa com zero, exceto quando você seta o índice.
Exemplo: http://viper-7.com/QA1XnS

Ordem sempre começa com um

(29/04/2015, 17:12)Rafael Escreveu: VEM
https://code.visualstudio.com/
@Thelight52 @zack fair @morgiana @BinSlashBash
Novo editor da microsoft, ainda ta em fase beta mas parece promissor :3
Mas acho que ainda n vai substituir meu precioso sublime text -q
(29/04/2015, 17:17)Thelight52 Escreveu: Que
Spoiler: Imagem  
[Imagem: kO4kIEL.png]
Microsoft tá maluca (8)

É bem incomum a Microsoft fazer release de qualquer um de seus produtos para a plataforma linux, porém, vale lembrar que recentemente, até mesmo parte do código fonte do .net também foi aberto para que os desenvolvedores possam rodar suas aplicações .net no linux.
Vejo esta atitude com bons olhos, porém, vamos ver até onde vai a boa vontade da dona Microsoft, até porque, seu principal produto que é o Office, ainda não tem releases para linux, somente para o Mac e como todos sabem, MacOS e Linux são filhos do mesmo Unix, então, qual seria a desculpa para não haver Office para linux?
Responder
 #41
Batuta esse VS Code.

Bom para coisas pequenas que não precisam da IDE completa.
Responder
 #42
Uma curiosidade que descobri pros programadores de C# de plantão

Eu estava estudando Structs em C# aí percebi uma coisa:
ué, se em Reference Type ( System.Object ) o métodos equals compara só a o valor para referência na heap, como um Value Type ( System.ValueType / Structs ) o método equals ele compara cada valor do campo da estrutura e retorna se é true ou falso certinho? Aí pensei: ué, será que no System.ValueTypes o equals usa Reflection e pega cada valor da estrutura que tá passando no parâmetro e compara com a instância ?
E sim, eu estava certo!

Exemplo pra quem n entendeu:
Spoiler:  
Com structs retorna true:
[Imagem: TkGEa6O.png]
Com class retorna false:
[Imagem: 7txir3b.png]

Aí fui no reference source da microsoft olha o método equals na classe System.ValueType.
E eu estava certo http://referencesource.microsoft.com/#ms...references
!!!!
Muito foda, ele pega cada valor dos campos da estrutura, e compara... fodaa

Enquanto isso no Objects ou você tem que subscrever o método ou o operador ==
http://referencesource.microsoft.com/#ms...references
=D
TOP


Só marcando o pessoal aqui
@Thelight52 @morgiana @zack fair
Responder
 #43
Dica de aplicativo.

Caso queiram um bom player de vídeo para o Android, recomendo o VLC.
Para os usuários de linux e alguns de Windows, o VLC já é conhecido devido sua simplicidade, eficiência, integração com plugins, dentre outros.

Agora toda esta qualidade também está disponível para o Android, uma vez que o beta test terminou e enfim saiu a versão 1.3.2.
No android, ele conserva a simplicidade herdada do desktop, porém, com bons recursos, como controlar o brilho, o volume e a linha de tempo arrastando o dedo na tela.
E o mais impressionante, nada de propagandas na tela, como com outros players.

Para instalar o VLC para android, basta buscar por "vlc" no google play ou baixar o apk diretamente no site.

Nota: Demorei para postar aqui, outro dia eu volto e posto outra coisa
Responder
 #44
https://code.visualstudio.com/Docs/FAQ
[Imagem: hIkZbZE.png]
@Thelight52 @Morgiana
AFFFFF
sério mesmo que vou ter que migrar pro windows 8?
Responder
 #45
(13/05/2015, 10:13)Rafael Escreveu: https://code.visualstudio.com/Docs/FAQ
Spoiler: Imagem  
[Imagem: hIkZbZE.png]
@Thelight52 @Morgiana
AFFFFF
sério mesmo que vou ter que migrar pro windows 8?
Mas você ia usar o Code para algo?

Eu achei ele kawaii e tal, mas meio inútil na pratica.
Responder
Páginas (5): « Anterior 1 2 3 4 5 Próximo »

Usuários visualizando este tópico: 1 Visitantes