Array
(
)

var DateTime não funciona como parâmetro em um método

Pjava
   - 08 abr 2013

Criei um método com vários argumentos, entre eles um argumento do tipo DateTime. Então, fiz um swtch...case e carrego uma variável do tipo DateTime, com as condições do swtch..case,conforme abaixo.
DateTime? _dtprazo = null;
switch(rblTarefa.SelectedIndex)
{
case 1:
_dtprazo = DateTime.Now;
break;
case 2:
_dtprazo = DateTime.Now.AddDays(3);
break;
case 3:
_dtprazo = DateTime.Now.AddDays(3);
break;
case 4:
_dtprazo = DateTime.Now.AddDays(3);
break;
case 5:
_dtprazo = DateTime.Now.AddDays(3);
break;
}

string mensagem = "Cadastro inserido com sucesso";
try
{
dados.insereCadastro(int.Parse(Session["CodUsuario"].ToString()), edtPj.Text, _dtprazo, rblTarefa.SelectedValue, rblAudiencia.SelectedValue);
ClientScript.RegisterClientScriptBlock(this.GetType(), "MensagemDeAlert", "alert('" + mensagem + "');", true);
}
catch (Exception ex)
{
lblErro.Text = "Não foi possível inserir um novo cadastro: \n" + ex.Message;
}
Dá erro, mas se eu trocar o _dataprazo por DateTime.Now, por exemplo, aí funciona, mas eu preciso da variável, para alimentar essa data dentro das condições. Fiz outro exemplo, com variável em outro WebForm e funcionou. O que está errado nesse exemplo? O erro está abaixo:
The best overloaded method match for 'WFJuridico.InsereDados.EntradaDados.insereCadastro(int, string, System.DateTime, string, string)' has some invalid arguments

Joel Rodrigues
   - 08 abr 2013

No momento que você declarou _dtprazo como nullable, você alterou o tipo dessa variável. Agora ela é DateTime? e não mais apenas DateTime, saca?
Ou seja, o método não está pronto parar receber uma data nula. Para isso, você deve passar _dtprazo.Value para o método.
O Value, em variáveis nullable, possui o real valor dessa variável, do tipo original dela.

Teste e nos dê um retorno.

0
|
0

Pjava
   - 08 abr 2013

Era isso mesmo; Troquei declaração e agora funcionou, nem precisei passar o value.

0
|
0

Joel Rodrigues
   - 08 abr 2013

Show de bola. Nesse caso, estou encerrando o tópico.
Abraço.

0
|
0