quinta-feira, 26 de março de 2009
iMasters Fóruns > Internet via Celular
*99***1#
Clique em avançar.
O nome de usuario e senha variam conforme a operadora.
Eis os nomes:
Operadora claro
Usuario:claro
Senha:claro
Operadora TIM
Usuario:tim
Senha:tim
Obs.: Atentem que o usuario e senha estão em minúsculo.
Alguns telefones precisam de um script para inicialização para o modem:
AT+CGDCONT=1,'IP','tim.br'"
terça-feira, 24 de março de 2009
sexta-feira, 20 de março de 2009
Configuração dos parâmetros das APN's (Access Point Name - nome dos pontos
de
acesso) da VIVO, para serviços de dados
Todas estas configurações já vêm pré-carregadas em seu celular VIVO, e sem
elas não é
possível utilizar ou acessar serviços como:
- Vivo WAP
- Vivo Foto/Video Torpedo
- Vivo Play
- Vivo ZAP
No caso de o celular ter sido adquirido em outra operadora, outro país ou em
um caso
onde os parâmetros de configuração de rede tenham que ser inseridos
manualmente,
você deve usar os seguintes valores:
- Vivo WAP e Foto/Video Torpedo para aparelhos com suporte ao protocolo WAP
1.x
Pode-se verificar se o telefone suporta protocolo WAP 1.x ou WAP 2.0 nas
especificações
do mesmo, junto ao fabricante do aparelho.
Vivo WAP
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, para
acesso ao
WAP gateway.
Nome da conexão: Vivo WAP
Nome do Ponto de Acesso (APN): wap.vivo.com.br
Usuário: vivo
Senha: vivo
Pedir senha: Não
Autenticação: PAP (Normal)
Endereço IP do Proxy: 200.142.130.166
Porta: 9203 (Sessão segura e com conexão permanente)
Página Inicial: http://termwapgsm1x.vivo.com.br
Vivo Foto/Video Torpedo
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, com
acesso ao WAP
gateway e plataforma para serviços MMS.
Nome da Conexão: Vivo MMS
Nome do Ponto de Acesso (APN): mms.vivo.com.br
Usuário: vivo
Senha: vivo
Endereço IP do Proxy: 200.142.130.166
Porta: 9203
MMSC URL: http://termnat.vivomms.com.br:8088/mms
- Vivo WAP e Foto/Vídeo Torpedo para aparelhos com suporte ao protocolo WAP
2.x
Pode-se verificar se o telefone suporta protocolo WAP 1.x ou WAP 2.0 nas
especificações
do mesmo, junto ao fabricante do aparelho.
Vivo WAP
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, para
acesso ao
WAP gateway.
Nome da conexão: Vivo WAP
Nome do Ponto de Acesso (APN): wap.vivo.com.br
Usuário: vivo
Senha: vivo
Pedir senha: Não
Autenticação: PAP (Normal)
Endereço IP do Proxy: 200.142.130.104
Porta: 80
Página Inicial: http://termwapgsm2.vivo.com.br
Vivo Foto/Video Torpedo
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, com
acesso ao WAP
gateway e plataforma para serviços MMS.
Nome da Conexão: Vivo MMS
Nome do Ponto do Acesso (APN): mms.vivo.com.br
Usuário: vivo
Senha: vivo
Autenticação: PAP (Normal)
Endereço IP do Proxy: 200.142.130.104
Porta: 80
MMSC URL: http://termnat.vivomms.com.br:8088/mms
- Vivo Play
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, para
streaming de
conteúdos, utilizando as portas:
TCP:554
UDP: de 1024 a 65000
Nome da Conexão: Vivo Play
Nome do Ponto de Acesso (APN): play.vivo.com.br
Usuário: vivo
Senha: vivo
Autenticação: PAP (Normal)
Endereço de Proxy: Não utilizar proxy
- Vivo ZAP
Esta conexão recebe um IP público, para acesso direto à internet.
Nome da conexão: Vivo ZAP
Nome do Ponto de Acesso (APN): zap.vivo.com.br
Usuário: vivo
Senha: vivo
Autenticação: PAP (Normal)
Endereço de Proxy: Não utilizar proxy
Fonte: Site Vivo http://www.vivo.com.br
Configuração dos parâmetros das APN’s (Access Point Name – nome dos pontos de acesso) da VIVO,
para serviços de dados
Todas estas configurações já vêm pré-carregadas em seu celular VIVO, e sem elas não é
possível utilizar ou acessar serviços como:
- Vivo WAP
- Vivo Foto/Video Torpedo
- Vivo Play
- Vivo ZAP
No caso de o celular ter sido adquirido em outra operadora, outro país ou em um caso
onde os parâmetros de configuração de rede tenham que ser inseridos manualmente,
você deve usar os seguintes valores:
- Vivo WAP e Foto/Video Torpedo para aparelhos com suporte ao protocolo WAP 1.x
Pode-se verificar se o telefone suporta protocolo WAP 1.x ou WAP 2.0 nas especificações
do mesmo, junto ao fabricante do aparelho.
Vivo WAP
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, para acesso ao
WAP gateway.
Nome da conexão: Vivo WAP
Nome do Ponto de Acesso (APN): wap.vivo.com.br
Usuário: vivo
Senha: vivo
Pedir senha: Não
Autenticação: PAP (Normal)
Endereço IP do Proxy: 200.142.130.166
Porta: 9201 (Sessão segura e com conexão permanente)
Página Inicial: http://termwapgsm1x.vivo.com.br
Vivo Foto/Video Torpedo
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, com acesso ao WAP
gateway e plataforma para serviços MMS.
Nome da Conexão: Vivo MMS
Nome do Ponto de Acesso (APN): mms.vivo.com.br
Usuário: vivo
Senha: vivo
Endereço IP do Proxy: 200.142.130.166
Porta: 9201
MMSC URL: http://termnat.vivomms.com.br:8088/mms
Vivo JAVA
Esta conexão recebe um IP privado.
Nome da conexão: Vivo Java
Nome do Ponto de Acesso (APN): wap.vivo.com.br
Endereço de Proxy: 200.142.130.166
Porta: 9201
- Vivo WAP e Foto/Vídeo Torpedo para aparelhos com suporte ao protocolo WAP 2.x
Pode-se verificar se o telefone suporta protocolo WAP 1.x ou WAP 2.0 nas especificações
do mesmo, junto ao fabricante do aparelho.
Vivo WAP
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, para acesso ao
WAP gateway.
Nome da conexão: Vivo WAP
Nome do Ponto de Acesso (APN): wap.vivo.com.br
Usuário: vivo
Senha: vivo
Pedir senha: Não
Autenticação: PAP (Normal)
Endereço IP do Proxy: 200.142.130.104
Porta: 80
Página Inicial: http://termwapgsm2.vivo.com.br
Vivo Foto/Video Torpedo
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, com acesso ao WAP
gateway e plataforma para serviços MMS.
Nome da Conexão: Vivo MMS
Nome do Ponto do Acesso (APN): mms.vivo.com.br
Usuário: vivo
Senha: vivo
Autenticação: PAP (Normal)
Endereço IP do Proxy: 200.142.130.104
Porta: 80
MMSC URL: http://termnat.vivomms.com.br:8088/mms
Vivo JAVA
Esta conexão recebe um IP privado.
Nome da conexão: Vivo Java
Nome do Ponto de Acesso (APN): wap.vivo.com.br
Endereço de Proxy: 200.142.130.104
Porta: 80
Vivo Play
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, para streaming de
conteúdos, utilizando as portas:
TCP:554
UDP: de 1024 a 65000
Nome da Conexão: Vivo Play
Nome do Ponto de Acesso (APN): play.vivo.com.br
Usuário: vivo
Senha: vivo
Autenticação: PAP (Normal)
Endereço de Proxy: Não utilizar proxy
Vivo ZAP
Esta conexão recebe um IP público, para acesso direto à internet.
Nome da conexão: Vivo ZAP
Nome do Ponto de Acesso (APN): zap.vivo.com.br
Usuário: vivo
Senha: vivo
Autenticação: PAP (Normal)
Endereço de Proxy: Não utilizar proxy
Script paro o Vivo Zap no Linux (atualizado)
12/11/2008 – 14:05As conexões móveis estão se tornando as sucessoras do acesso discado, no sentido de que estão disponíveis em praticamente qualquer lugar, atendendo até mesmo as áreas mais afastadas, onde outras modalidades de conexões não estão disponíveis, além de fazerem a alegria de quem precisa de uma conexão contínua em qualquer lugar para trabalhar ou manter contato com os amigos.
Embora existam muitas arestas a aparar, as conexões via 3G são bem suportadas no Linux, muito embora a configuração nem sempre seja tão simples quando poderia.
Uma avanço importante foi a adição do suporte a modems 3G no NetworkManager, que já está disponível para os usuários do Ubuntu 8.10. Ao plugar um modem compatível, ele pergunta se você quer configurar a conexão e a partir daí a opção da rede 3G fica disponível na lisa de redes, pronta para ser ativada quando necessário. Entretanto, o NetworkManager ainda não oferece suporte a conexões via Bluetooth e nem atende a usuários de todas as distribuições.
Recentemente, recebi alguns equipamentos da Vivo para testes (agradecimentos ao Átila e ao Celso), o que me permitiu elaborar um script de conexão cobrindo as principais formas de conexão usando um plano de dados no Linux. Usando o script você pode conectar usando:
1- Um modem USB (o script inclui regras para o udev e workarounds para ativar modems Huawei E156, Huawei E220/226 e Aiko 82D mesmo em distribuições antigas).
2- Um celular ou smartphone plugado na porta USB, sendo usado como modem. Nos Nokia você precisa apenas ligar o cabo e escolher o modo PC Suite.
2- Conexão via Bluetooth DUN (o modo de compartilhamento usado nos Nokia e na maioria dos outros aparelhos)
3- Conexão via Bluetooth PAN (o modo usado no Windows Mobile)
A conexão via modems USB é relativamente simples, mas as outras duas são um pouco mais complicadas, mas o script ajuda a configurar a conexão fazendo apenas algumas perguntas simples.
Intencionalmente, ele foi escrito usando uma interface o mais simples possível, utilizando apenas menus de texto, de forma a ser o mais compatível possível e rodar em qualquer distribuição sem a necessidade de instalar pacotes adicionais. Para as conexões via USB ele precisa apenas que o wvdial esteja instalado (e que o Kernel em uso ofereça suporte ao modem) e para as conexões via Bluetooth ele precisa também do bluez, que vem pré-instalado em quase todas as distribuições atuais.
Ele inclui também alguns workarounds para problemas comuns (como o ajuste da rota padrão) e mensagens explicativas para erros comuns.
Baixe aqui: http://www.gdhpress.com.br/blog/arquivos/vivozap.zip
O arquivo inclui o script "conectar-vivoza" original, juntamente com uma versão com codificação ISO-8859-1 (que você pode utilizar caso os caracteres acentuados estejam aparecendo trocados), o arquivo huawei.out, que é necessário para alguns modems e pacotes do wvdial para distribuições baseadas no Debian, que você pode utilizar caso não tenha outra conexão disponível para instalar via apt.
Para usar o script, valem os passos de sempre:
1- Baixe o arquivo .zip e descompacte-o (no Linux você pode descompactar usando o comando "unzip", como em "unzip vivozap.zip).
2- Acesse a pasta que será criada e, caso necessário, transforme o script em executável usando o comando "chmod +x", como em:
$ chmod +x conectar-vivozap
3- Logue-se como root usando o comando "su".
4- Execute o script, usando o "./conectar-vivozap" ou "sh conectar-vivozap":
# ./conectar-vivozap
Da primeira vez que é executado, o script faz as perguntas necessárias e gera um arquivo de configuração e a partir da segunda conexão ele conecta diretamente, usando a configuração anteriormente gerada. A idéia central é tornar a conexão o mais simples possível.
Se você está curioso em ver os passos que são executados pelo script, abra o arquivo usando um editor de textos, como o gedit ou o kwrite. O código está bem comentado.
Por enquanto o script funciona apenas quando executado diretamente como root, devido à necessidade de modificar a configuração do pppd e do bluetooth. Apesar do nome, ele pode ser usado também para conexões com outras operadoras, basta substituir a linha "vivomode="1" por "vivomode="0" no início do script. O arquivo foi gerado com codificação UTF-8 (que é usada por padrão no Ubuntu e na maioria das outras distribuições atuais. Se estiver vendo caracteres estranhos, baixe a versão alternativa com codificação ISO-8859-1 ou mude a codificação para UTF-8 nas configurações do terminal ou do editor de textos.
Para quem está curioso, aqui vai o "código fonte" do script (o Wordpress troca as aspas e alguns outro caracteres por causa do UTF-8, por isso não tente copiar o texto diretamente. Em vez disso, baixe usando o link acima).
#!/bin/sh # Script para conectar no Vivo Zap usando um smartphone como modem # Por Carlos E. Morimoto # http://www.gdhpress.com.br # http://www.guiadohardware.net # Pode ser alterado e redistribuído livremente dentro dos termos da GPL # Caracteres estranhos? Mude a codificação do editor para UTF-8# Mude de 1 para 0 para que o script pergunte qual operadora utilizar: vivomode="1"# Ajusta o charset export LANG=pt_BR.UTF-8 export CHARSET=UTF-8 clear echo 'Este é um script para conectar no Vivo Zap usando um modem 3G USB ou um smarthphone que permita o acesso via DUN ou PAN, via Bluetooth. Escrito por Carlos Morimoto http://www.gdhpress.com.br/blog/script-vivo-zap/ ' sleep 1 # Verifica se o script está sendo executado pelo root. # Funções usadas ao longo do scrip bpairing() # Fecha o kbluetoothd echo "Localizando aparelhos com bluetooth nas proximidades:" echo " echo " # Descobre o nome da maquina. Se algo der errado, o nome é 'pc' # Gera a configuração do hcid: # Coloca o PC em modo discoverable # Reinicia o bluetooth e ativa a porta bcanal() 2 : Aparelhos da Nokia Ex: 2' # Gera a configuração do rfcomm bmesg() Depois de feito o pareamento, pressione Enter para continuar.' errowvdial() No Ubuntu, Kubuntu, Kurumin, Satux ou outra distribuição derivada do Debian use: No Mandriva, use: No Fedora, use: No OpenSUSE, use: (se por acaso ele estiver instalado em uma localização fora do padrão, crie huaweiout() checaporta() # Checa se o huawei.out está disponível if [ -e "/dev/ttyACM0" ]; then elif [ -e "/dev/ttyUSB0" ]; then elif [ -e "/dev/ttyUSB1" ]; then elif [ -e "/dev/ttyUSB2" ]; then elif [ -e "/dev/usb/ttyUSB0" ]; then Se você está usando um smartphone, experimente desligá-lo, ligá-lo e conectá-lo Se você está usando um modem huawei E220 ou E226 em uma distribuição antiga Se você está usando o Kurumin 7 (ou outra distribuição baseada no Debian Etch) Salve o arquivo huawei.out na mesma pasta onde está este script e passarei a Se por acaso seu modem utiliza uma porta diferente, você pode indicá-la aqui, Especifique a porta ou pressione Ctrl+C para sair if [ -n "$porta" ]; then checarrota() if [ "$resposta" = "s" ]; then configoperadora() if [ "$vivomode" = "1" ]; then # Configurações da Operadora else echo ' 1) Vivo (responda 1, 2, 3, 4, 5 ou 6) echo "user=\"$user\"" >> /home/$USER/.3gconfig fi } reconfigurar() addudevrules echo ' Para os modems USB, você provavelmente não precisará fazer nada, já que o script O script usa o wvdial para fazer a conexão, por isso é necessário que ele # Só por via das dúvidas… if [ "$resposta" = "1" ]; then configoperadora # Função para conexão USB # Função para Bluetooth DUN # Função para Bluetooth PAN (Windows Mobile) # Pergunta sobre o DNS ativafirewall() checafirewall() checadns() addudevrules() SUBSYSTEM=="usb", \ checahuawei=`lsusb | grep 12d1:1003` SUBSYSTEM=="usb", \ } # Início do script # Verifica o arquivo de configuração e decide entre usá-lo ou gerar um novo Pressione Enter para continuar ou c para reconfigurar: if [ "$resposta" = "c" ]; then # Se respodido "c", reconfigura else # Senão, carrega a configuração fi else # Se não encontra o script, reconfigura fi # Terminada a configuração, a conexão é ativada: # Deleta a rota padrão caso tenha sido solicitado pelo usuário # Função para conexão USB if [ "$conn" = "usb" ]; then # Carrega o módulo do kernel # Checa se o huawei.out está disponível # Sem isso o ppp não consegue alterar o DNS ao conectar # Substitui o DNS do provedor caso solicitado # Ativa o firewall, caso solicitado echo '[Dialer 3g]' > /etc/wvdial.conf if [ -e "/usr/bin/wvdial" ]; then echo 'discando… Pressione Ctrl+C para encerrar a conexão. wvdial 3g' # Caso tenha deletado a rota padrão no início do script, recarrega a else fi # Função para Bluetooth DUN if [ "$conn" = "dun" ]; then # Fecha o kbluetoothd # Reinicia o bluetooth e ativa a porta echo "Gerando configuracao do wvdial…" sed -i -e "/lcp-echo-interval 30/D" /etc/ppp/options # Sem isso o ppp não consegue alterar o DNS ao conectar # Substitui o DNS do provedor caso solicitado # Ativa o firewall, caso solicitado echo '[Dialer 3g]' > /etc/wvdial.conf if [ -e "/usr/bin/wvdial" ]; then echo 'discando… Pressione Ctrl+C para encerrar a conexao Se algo der errado durante a discagem, experimente reiniciar o smartphone wvdial 3g' # Caso tenha deletado a rota padrão no início do script, recarrega a else errowvdial fi fi # Função para Bluetooth PAN (Windows Mobile) if [ "$conn" = "pan" ]; then echo 'Ative o compartilhamento no smartphone, clicando no "Iniciar > Programas > Pressione Enter para ativar a conexão. echo "Tentando se conectar a $blueaddr…" echo "(pressione Enter para continuar)" echo 'Se tudo deu certo, a rede bluetooth foi estabelecida e seu PC recebeu Para fechar a conexão posteriormente, use (como root): pand -K Para listar as conexões ativas (em caso de dúvidas sobre se a conexão está pand -l echo "(pressione Enter para sair do script)" fi exit 0 |
vivo - internet
Configuração dos parâmetros das APN’s (Access Point Name – nome dos pontos de acesso) da VIVO,
para serviços de dados
Todas estas configurações já vêm pré-carregadas em seu celular VIVO, e sem elas não é
possível utilizar ou acessar serviços como:
- Vivo WAP
- Vivo Foto/Video Torpedo
- Vivo Play
- Vivo ZAP
No caso de o celular ter sido adquirido em outra operadora, outro país ou em um caso
onde os parâmetros de configuração de rede tenham que ser inseridos manualmente,
você deve usar os seguintes valores:
- Vivo WAP e Foto/Video Torpedo para aparelhos com suporte ao protocolo WAP 1.x
Pode-se verificar se o telefone suporta protocolo WAP 1.x ou WAP 2.0 nas especificações
do mesmo, junto ao fabricante do aparelho.
Vivo WAP
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, para acesso ao
WAP gateway.
Nome da conexão: Vivo WAP
Nome do Ponto de Acesso (APN): wap.vivo.com.br
Usuário: vivo
Senha: vivo
Pedir senha: Não
Autenticação: PAP (Normal)
Endereço IP do Proxy: 200.142.130.166
Porta: 9201 (Sessão segura e com conexão permanente)
Página Inicial: http://termwapgsm1x.vivo.com.br
Vivo Foto/Video Torpedo
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, com acesso ao WAP
gateway e plataforma para serviços MMS.
Nome da Conexão: Vivo MMS
Nome do Ponto de Acesso (APN): mms.vivo.com.br
Usuário: vivo
Senha: vivo
Endereço IP do Proxy: 200.142.130.166
Porta: 9201
MMSC URL: http://termnat.vivomms.com.br:8088/mms
Vivo JAVA
Esta conexão recebe um IP privado.
Nome da conexão: Vivo Java
Nome do Ponto de Acesso (APN): wap.vivo.com.br
Endereço de Proxy: 200.142.130.166
Porta: 9201
- Vivo WAP e Foto/Vídeo Torpedo para aparelhos com suporte ao protocolo WAP 2.x
Pode-se verificar se o telefone suporta protocolo WAP 1.x ou WAP 2.0 nas especificações
do mesmo, junto ao fabricante do aparelho.
Vivo WAP
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, para acesso ao
WAP gateway.
Nome da conexão: Vivo WAP
Nome do Ponto de Acesso (APN): wap.vivo.com.br
Usuário: vivo
Senha: vivo
Pedir senha: Não
Autenticação: PAP (Normal)
Endereço IP do Proxy: 200.142.130.104
Porta: 80
Página Inicial: http://termwapgsm2.vivo.com.br
Vivo Foto/Video Torpedo
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, com acesso ao WAP
gateway e plataforma para serviços MMS.
Nome da Conexão: Vivo MMS
Nome do Ponto do Acesso (APN): mms.vivo.com.br
Usuário: vivo
Senha: vivo
Autenticação: PAP (Normal)
Endereço IP do Proxy: 200.142.130.104
Porta: 80
MMSC URL: http://termnat.vivomms.com.br:8088/mms
Vivo JAVA
Esta conexão recebe um IP privado.
Nome da conexão: Vivo Java
Nome do Ponto de Acesso (APN): wap.vivo.com.br
Endereço de Proxy: 200.142.130.104
Porta: 80
Vivo Play
Esta conexão utiliza uma faixa de IP privado atribuído pela operadora, para streaming de
conteúdos, utilizando as portas:
TCP:554
UDP: de 1024 a 65000
Nome da Conexão: Vivo Play
Nome do Ponto de Acesso (APN): play.vivo.com.br
Usuário: vivo
Senha: vivo
Autenticação: PAP (Normal)
Endereço de Proxy: Não utilizar proxy
Vivo ZAP
Esta conexão recebe um IP público, para acesso direto à internet.
Nome da conexão: Vivo ZAP
Nome do Ponto de Acesso (APN): zap.vivo.com.br
Usuário: vivo
Senha: vivo
Autenticação: PAP (Normal)
Endereço de Proxy: Não utilizar proxy
terça-feira, 10 de março de 2009
Iterators at C# Online.NET (CSharp-Online.NET)
Microsoft .NET Framework, ASP.NET, Visual C# (CSharp, C Sharp, C-Sharp) Developer Training, Visual Studio
Jump to: navigation, search
Exam Prep. Guides
Exam 70-536 Study Guide
1. Types and collections
* Manage data
* Manage collections
o ArrayList class
o Collection interfaces
o Iterators
o Hashtable class
o CollectionBase
o DictionaryBase
o Comparer class
o Queue class
o SortedList class
o BitArray class
o Stack class
* Generic collections
* Specialized collections
* Implement interfaces
* Events and delegates
2. Process, threading,…
3. Embedding features
4. Serialization, I/O
5. .NET Security
6. Interop., reflection,…
7. Global., drawing, text
edit
Iterators are an alternative to implementing IEnumerable. They are new in C# 2.0 and greatly reduce the complexity of providing an enumerator for a collection.
When using an iterator, the compiler generates the IEnumerator class at build time.
The keyword yield is used with a return statement to return a single item at a time. Each yield return corresponds to getting the current item. Then when the next item is requested, the compiler resumes the execution after the last yield return was called. In reality, the execution of the method does not begin at the beginning of the method each time. The compiler turns the single yield method into an entire IEnumerator class with its own state, MoveNext and Current.
However, when implementing, do not focus on how the compiler accomplishes its task. Instead, simply yield one item at a time in the order desired using whatever technique is easiest.
Contents
[hide]
* 1 Code examples
* 2 Generic Usage
o 2.1 Iterating with foreach
o 2.2 Non-Generic
o 2.3 Generic
* 3 MSDN References
[edit]
Code examples
Iterate over some constant values
public IEnumerable Values(){
yield return 2;
yield return 55;
yield return 34;
yield return 324;
yield return 1;
yield return 7;
yield return 98;
yield return 34;
yield return 4;
yield return 11;
}
Iterate through an internal array
private int[] items;
//...
public IEnumerable Items(){
for (int i = 0; i < items.Length; i++){
yield return items[i];
}
}
Iterate through n prime numbers
public IEnumerable Primes( int max ){
for (int i = 0; i < max; i++){
if( IsPrime( i ) ){
yield return i;
}
}
}
Iterate forever
// This has no end
// It will always return Hello after every MoveNext
// However, it is not an infinite loop
// The one who uses the enumerator determines
// whether to keep calling MoveNext
public IEnumerable EternalEcho(){
while( true ){
yield return "Hello";
}
}
[edit]
Generic Usage
To promote type safety it is recommended that you use the generic IEnumerable form via IEnumerable
[edit]
Iterating with foreach
static void Main(string[] args)
{
foreach (TypeCode currentType in getCode())
{
//Do Stuff
}
}
[edit]
Non-Generic
You may want to do this at some point, it will compile, but can the caller handle it. If using a foreach loop then a cast occurs for each item. Depending on how you use the object inside the foreach loop you may have exceptions being thrown as 55000 is not an enumerated TypeCode.
static IEnumerable getCode()
{
yield return TypeCode.Boolean;
yield return TypeCode.Byte;
yield return 55000;
yield return TypeCode.Char;
}
[edit]
Generic
The compiler sees that this could cause problems and does not compile it.
static IEnumerable
{
yield return TypeCode.Boolean;
yield return TypeCode.Byte;
yield return 55000;
yield return TypeCode.Char;
}
If you are 100% sure that it is what you want to do you could cast it. But only if you must!
static IEnumerable
{
yield return TypeCode.Boolean;
yield return TypeCode.Byte;
//You can persuade the compiler but you may get yourself into problems!
yield return (TypeCode) 55000;
yield return TypeCode.Char;
}
[edit]
MSDN References
Iterators
Retrieved from "http://en.csharp-online.net/Iterators"
Categories: Exam 70-536 Study Guide | Exam 70-536 Study Guide: Skill Set 1
segunda-feira, 9 de março de 2009
POLEGADA FRACIONÁRIA | MILÍMETROS | CENTÍMETROS |
1/16" | 1,5875 | 0,15875 |
1/8" | 3,175 | 0,3175 |
3/16" | 4,7625 | 0,47625 |
¼" | 6,35 | 0,635 |
5/16" | 7,9375 | 0,79375 |
3/8" | 9,525 | 0,9525 |
7/16" | 11,1125 | 1,11125 |
½" | 12,7 | 1,27 |
9/16" | 14,2875 | 1,42875 |
5/8" | 15,875 | 1,5875 |
11/16" | 17,4625 | 1,74625 |
¾" | 19,05 | 1,905 |
13/16" | 20,6375 | 2,06375 |
7/8" | 22,225 | 2,2225 |
15/16" | 23,8125 | 2,38125 |
1" | 25,4 | 2,54 |
polegada centímetros - Pesquisa Google
Punctuation
Punctuation is the system of symbols (. , ! - : etc) that we use to separate sentences and parts of sentences, and to make their meaning clear. Each symbol is called a "punctuation mark".
The Value of Punctuation An English teacher wrote these words on the board: woman without her man is nothing The teacher then asked the students to punctuate the words correctly. The men wrote the top line. The women wrote the bottom line. |
Summary of Punctuation Marks
Punctuation Mark | Name | Example |
---|---|---|
full stop or period | I like English. | |
comma | I speak English, French and Thai. | |
semi-colon | I don't often go swimming; I prefer to play tennis. | |
colon | You have two choices: finish the work today or lose the contract. | |
hyphen | This is a rather out-of-date book. | |
dash | In each townóLondon, Paris and Romeówe stayed in youth hostels. | |
question mark | Where is Shangri-La? | |
exclamation mark | "Help!" she cried. "I'm drowning!" | |
slash, forward slash or oblique | Please press your browser's Refresh/Reload button. | |
backslash | C:\Users\Files\jse.doc | |
double quotation marks | "I love you," she said. | |
single quotation marks | 'I love you,' she said. | |
apostrophe | This is John's car. | |
underline | Have you read War and Peace? | |
underscore | bin_lad@cia.gov | |
round brackets | I went to Bagkok (my favourite city) and stayed there for two weeks. | |
square brackets | The newspaper reported that the hostages [most of them French] had been released. | |
curly brackets or braces | { b := a + 1 RESULTIS b } | |
ellipsis | One happy customer wrote: "This is the best program...that I have ever seen." |
|