Usuário com melhor resposta
Dúvidas Diversas C#

Pergunta
-
Olá,
Estou iniciando e tenho algumas dúvidas, conforme abaixo(já li vários artigos e ainda o termo não ficou claro):
1)O que é Variável por valor e por referência, quando uso uma ou outra?;
2)O que são Membros Estaticos x Membros Instância, quando uso uma ou outra?;
3) Quando eu uso o operador ternário, poderia simplesmente usar o IF? Qual sua utilidade?
4) Posso definir todas as variáveis com a palavra "var"sem que para isso eu precise definir o tipo dela? É aconselhável usar "var"ou é melhor informar o tipo dela e porquê?
5) Posso definir propriedades sempre como interface?
Ex: string Placa {get;set}
Ou preciso fazer desta forma?
Ex: private string _placa;
public string Placa;
{get return _placa}
{set _placa = value}
Qual a diferença e o que me acarreta se eu fizer de um jeito ou do outro?
Obrigada
Respostas
-
Olá Camila
Item 2: Membros de instâncias são propriedades, métodos ou variáveis que vc cria na classe, mas que exige que vc instancie a classe para ter acesso a eles, como por exemplo: o método Mostrar exigie que vc crie uma instância da classe Test para que possa visualiá-lo. Métodos staticos vc define como: public static void Mostrar(); no Exemplo 2.
Exemplo 1
public class Teste { public voi Mostrar(){} } public class Testando { Teste vTeste; public Testanto(){ vTeste = new Teste();} voi Exemplos() { vTeste.Mostrar(); } }
Exemplo 2.
class Teste { public static void Mostar(){} } public class Testando { public Testando(){} void Exemplo() { Teste.Mostar(); } }
O exmplo 2 não exisge que seja instânciada a classe. Um membro statico é um membro que tem o seu valor fixo na memória, de maneira que ele continua existindo mesmo que vc feche a aplicação, e o seu valor só será alterado se vc o fizer explicitamente.
Item 3.
Dependendo do contexto sim, vc pode usar um if, mas vc deve levar em conta que o ooperador ternário já age como se fosse um if.
Item 5
Se vc o quiser, sim. As propriedades lhe dão mais flexibilidade para definir de que modo vc quer setar um valor ou retornar um valor, vc pode usar código dentro delas como se fosse uma método. Porém se vc usar apenas ge;set; vc estrá dizendo à propriedade, apenas receba esse valor e me devolva o mesmo valor.
Analista Desenvolvedor .NET - SQL Server - PostgreSQL - MySql - FireBird. Se a resposta foi útil vote como tal, assim podemos ajudar a todos.
- Sugerido como Resposta EduardoPiresMVP segunda-feira, 2 de julho de 2012 17:26
- Marcado como Resposta Camila_cd segunda-feira, 2 de julho de 2012 19:13
-
Olá,
Sugiro que dê uma lida no site do Macoratti, ele atende bem as dúvidade de iniciantes.
Dica, realize os exemplos na prática, vão te ajudar a ter um entendimento melhor, além de facilitar a memorização.
Abç!
É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"
Eduardo Pires
www.eduardopires.net.br
- Marcado como Resposta Camila_cd segunda-feira, 2 de julho de 2012 19:13
-
Item 3:
Operador ternário:
condicao ? valor_se_verdadeiro : valor_se_falso
Você pode fazer com o IF "clássico" também, mas optamos pelo ternário, pois economiza linha de código e fica mais simples de ler/entender
Ex:
int x = 5, y = 10; Console.WriteLine(x * y > y - x ? "Verdadeiro" : "Falso");
Item 5:
Dependendo da versão do C# que estiver usando Framework 3.0 (para mais novo).
Você pode (e deve, caso queira ser mais ágil) utilizar declaração da forma reduzida, mas fica ao seu critério, segue exemplos:
// Não precisa definir a privada: public string Nome { get; set; } // Definindo a privada: private string _nomeCompleto; public string NomeCompleto { get { return _nomeCompleto; } set { _nomeCompleto = value; } } // Definindo a privada. // Quando a propriedade é somente leitura. private string _nomeCompleto; public string NomeCompletoReadOnly { get { return _nomeCompleto; } }
Ajudou?
Abç...
É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"
Eduardo Pires
www.eduardopires.net.br
- Marcado como Resposta Camila_cd segunda-feira, 2 de julho de 2012 22:37
-
Sempre que tiveres duvida podes vir aki ao forum, abre sempre um novo thread com a nova duvida, assim ajuda outro que tiverem a mesma duvida k tu.
http://malange-levi.blogspot.co.uk/
- Marcado como Resposta Camila_cd segunda-feira, 2 de julho de 2012 22:52
-
Olá camila, as propriedades automáticas foram introduzidas no c# 3.0.
não tem diferença entre usar um ou outro até pq quando o codigo é executado o compilador transforma.
public int Id{get;set;} em public int _id {set{_id = value;} get{return _id;}
Post sobre Get/Set para seus estudos.
Sobre uso de Ternarios tambem não diferença que vai acarretar lentidão em código, mas é uma forma mais limpa de declarar seus algoritmos.
Você prefere fazer
if(1== 1){
return true;
}else{
return false;
}
ou
return 1==1;
Como falei tem lugares que usar if ternário vai deixar seu código mais legivel. Com certeza você não vai querer usar uma arvore de ifs ternário!
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Editado Marco Souza segunda-feira, 2 de julho de 2012 22:54
- Marcado como Resposta Camila_cd terça-feira, 3 de julho de 2012 20:00
Todas as Respostas
-
Esse tipo de duvida é bom você ler um bom livro sobre orientação a objetos.
Grande parte dessas dúvidas você "mata" no próprio google
1)http://cavas.com.br/index.php/programacao/conceito-de-valor-e-referencia-no-c/
3) http://israelaece.com/post/Operadores-Ternarios.aspx
4) http://www.marcioalthmann.net/2010/09/ckeyword-var/A 5) acho que está se confundindo com propriedades automáticas, isso foi adicionado no c# 3.0, não acarreta em nada apenas que você nao precisa ficar criando a property e os get/sets.
http://msdn.microsoft.com/pt-br/library/bb384054.aspx
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Sugerido como Resposta Levi DomingosModerator segunda-feira, 2 de julho de 2012 15:50
-
-
Olá Camila
Item 2: Membros de instâncias são propriedades, métodos ou variáveis que vc cria na classe, mas que exige que vc instancie a classe para ter acesso a eles, como por exemplo: o método Mostrar exigie que vc crie uma instância da classe Test para que possa visualiá-lo. Métodos staticos vc define como: public static void Mostrar(); no Exemplo 2.
Exemplo 1
public class Teste { public voi Mostrar(){} } public class Testando { Teste vTeste; public Testanto(){ vTeste = new Teste();} voi Exemplos() { vTeste.Mostrar(); } }
Exemplo 2.
class Teste { public static void Mostar(){} } public class Testando { public Testando(){} void Exemplo() { Teste.Mostar(); } }
O exmplo 2 não exisge que seja instânciada a classe. Um membro statico é um membro que tem o seu valor fixo na memória, de maneira que ele continua existindo mesmo que vc feche a aplicação, e o seu valor só será alterado se vc o fizer explicitamente.
Item 3.
Dependendo do contexto sim, vc pode usar um if, mas vc deve levar em conta que o ooperador ternário já age como se fosse um if.
Item 5
Se vc o quiser, sim. As propriedades lhe dão mais flexibilidade para definir de que modo vc quer setar um valor ou retornar um valor, vc pode usar código dentro delas como se fosse uma método. Porém se vc usar apenas ge;set; vc estrá dizendo à propriedade, apenas receba esse valor e me devolva o mesmo valor.
Analista Desenvolvedor .NET - SQL Server - PostgreSQL - MySql - FireBird. Se a resposta foi útil vote como tal, assim podemos ajudar a todos.
- Sugerido como Resposta EduardoPiresMVP segunda-feira, 2 de julho de 2012 17:26
- Marcado como Resposta Camila_cd segunda-feira, 2 de julho de 2012 19:13
-
Olá,
Sugiro que dê uma lida no site do Macoratti, ele atende bem as dúvidade de iniciantes.
Dica, realize os exemplos na prática, vão te ajudar a ter um entendimento melhor, além de facilitar a memorização.
Abç!
É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"
Eduardo Pires
www.eduardopires.net.br
- Marcado como Resposta Camila_cd segunda-feira, 2 de julho de 2012 19:13
-
-
-
Item 3:
Operador ternário:
condicao ? valor_se_verdadeiro : valor_se_falso
Você pode fazer com o IF "clássico" também, mas optamos pelo ternário, pois economiza linha de código e fica mais simples de ler/entender
Ex:
int x = 5, y = 10; Console.WriteLine(x * y > y - x ? "Verdadeiro" : "Falso");
Item 5:
Dependendo da versão do C# que estiver usando Framework 3.0 (para mais novo).
Você pode (e deve, caso queira ser mais ágil) utilizar declaração da forma reduzida, mas fica ao seu critério, segue exemplos:
// Não precisa definir a privada: public string Nome { get; set; } // Definindo a privada: private string _nomeCompleto; public string NomeCompleto { get { return _nomeCompleto; } set { _nomeCompleto = value; } } // Definindo a privada. // Quando a propriedade é somente leitura. private string _nomeCompleto; public string NomeCompletoReadOnly { get { return _nomeCompleto; } }
Ajudou?
Abç...
É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"
Eduardo Pires
www.eduardopires.net.br
- Marcado como Resposta Camila_cd segunda-feira, 2 de julho de 2012 22:37
-
-
Sempre que tiveres duvida podes vir aki ao forum, abre sempre um novo thread com a nova duvida, assim ajuda outro que tiverem a mesma duvida k tu.
http://malange-levi.blogspot.co.uk/
- Marcado como Resposta Camila_cd segunda-feira, 2 de julho de 2012 22:52
-
Olá camila, as propriedades automáticas foram introduzidas no c# 3.0.
não tem diferença entre usar um ou outro até pq quando o codigo é executado o compilador transforma.
public int Id{get;set;} em public int _id {set{_id = value;} get{return _id;}
Post sobre Get/Set para seus estudos.
Sobre uso de Ternarios tambem não diferença que vai acarretar lentidão em código, mas é uma forma mais limpa de declarar seus algoritmos.
Você prefere fazer
if(1== 1){
return true;
}else{
return false;
}
ou
return 1==1;
Como falei tem lugares que usar if ternário vai deixar seu código mais legivel. Com certeza você não vai querer usar uma arvore de ifs ternário!
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Editado Marco Souza segunda-feira, 2 de julho de 2012 22:54
- Marcado como Resposta Camila_cd terça-feira, 3 de julho de 2012 20:00
-
Oi Camila,
Conforme o Malange orientou é legal utilizar dos fóruns para dúvidas, mas claro de qualquer forma se quiser pode me contatar, no meu site você tem acesso aos meus contatos!
Bons estudos...
É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"
Eduardo Pires
www.eduardopires.net.br
-
-
Olá, tudo bem?
Para entender melhor sobre tipo de variável de Valor e Referência no C# leia o artigo:
http://cavas.com.br/index.php/programacao/conceito-de-valor-e-referencia-no-c/
Abraços e até mais,
Marcelo Pereira Cavalini