Sobrecarga de Métodos
Bom dia!
Gostaria de saber se na sobreCarga de Métodos eu posso mudar juntamente com os parâmetros os tipo de retorno também ?
Por ex:
public bool executarComando(string p_strSql, List<SqlParameter> p_obParams)
public int executarComando(string p_strSql, List<SqlParameter> p_obParams)
Vlw Pessoal
Gostaria de saber se na sobreCarga de Métodos eu posso mudar juntamente com os parâmetros os tipo de retorno também ?
Por ex:
public bool executarComando(string p_strSql, List<SqlParameter> p_obParams)
public int executarComando(string p_strSql, List<SqlParameter> p_obParams)
Vlw Pessoal
Alan Miranda
Curtidas 0
Respostas
Tiago
07/11/2012
Bom dia Alan,
Claro que pode meu amigo.Para ser uma sobrecarga a mudança dos parâmetros é obrigatória. Então se você tem um método que não muda os parâmetros mas muda o tipo de retorno, isto não é uma sobrecarga.No entanto se os parâmetros e o tipo de retorno forem mudados, então isso é uma sobrecarga válida.
Espero ter ajudado.
Claro que pode meu amigo.Para ser uma sobrecarga a mudança dos parâmetros é obrigatória. Então se você tem um método que não muda os parâmetros mas muda o tipo de retorno, isto não é uma sobrecarga.No entanto se os parâmetros e o tipo de retorno forem mudados, então isso é uma sobrecarga válida.
Espero ter ajudado.
GOSTEI 0
Robson Alves
07/11/2012
Exatamente, se você precisa de um mesmo método que retorne um tipo diferente, você precisa repensar nos seus métodos!
Como boa prática um método deve ter apenas uma responsabilidade.
(Caso não seja o seu caso e apenas uma dúvida, pelo menos você aproveita como dica :D)
Como boa prática um método deve ter apenas uma responsabilidade.
(Caso não seja o seu caso e apenas uma dúvida, pelo menos você aproveita como dica :D)
GOSTEI 0
Alan Miranda
07/11/2012
Ok, só um pergunta eu consigo utilizar o ExecuteScalar para Update e Delete ?
Ai não irei precisar mudar ou criar um novo método!
Vlw pessoal!
Ai não irei precisar mudar ou criar um novo método!
Vlw pessoal!
GOSTEI 0
Robson Alves
07/11/2012
Ok, só um pergunta eu consigo utilizar o ExecuteScalar para Update e Delete ?
Ai não irei precisar mudar ou criar um novo método!
Vlw pessoal!
Ai não irei precisar mudar ou criar um novo método!
Vlw pessoal!
Não pode,o SCALAR não realiza comandos DML, além do que ele é um READER ele vai esperar o retorno da proc.
Para INSERT/UPDATE/DELETE (DML) usa-se o ExecuteNonQuery, por ser performático e correto.
GOSTEI 0
Alan Miranda
07/11/2012
Então o problema é que com ExecuteNonQuery eu não consigo recuperar o indentity do último usuário que foi cadastrado neh ?
Vlww
Vlww
GOSTEI 0
Robson Alves
07/11/2012
Entendi, neste caso você pode utilizar o Scalar...
Pq seu último comando vai ser :
select @@IDENTITY. então ele vai capturar e retornar!
Sucesso.
Pq seu último comando vai ser :
select @@IDENTITY. então ele vai capturar e retornar!
Sucesso.
GOSTEI 0
Alan Miranda
07/11/2012
Então pos isso que vou ter que criar dois metodos neh ? :(
GOSTEI 0
Robson Alves
07/11/2012
Sim e é o correto a se fazer!
Ficará mais legível quando o nome do método retorna sucintamente tudo o que ele pretende realizar.
Então crie dois métodos, nomeie bem e pronto!
Ficará mais legível quando o nome do método retorna sucintamente tudo o que ele pretende realizar.
Então crie dois métodos, nomeie bem e pronto!
GOSTEI 0
Alisson Santos
07/11/2012
Amigo gostaria de saber se conseguiu sanar sua duvida??
GOSTEI 0