Substituir if else por ternario?

4 respostas Resolvido
.netcsharp
E

http://image.prntscr.com/image/24d2e12736624140b8787e901e80a647.png

Na imagem acima, estou precisando fazer um ifelse pois com o operador ternário fica dando um erro, veja abaixo.

http://image.prntscr.com/image/7aebc42b2b6f40a8887a84e6a1df5996.png

Bom eu entendi que o operador ternário vai/deve retornar o mesmo tipo da condição, mas ficaria mais elegante usando o ternário. E realmente precisa ser o DBNull.Value tentei o null da variável, mas não funcionou?

4 Respostas

D

Tem que fazer um cast para Object:

(object)(!string.IsNullOrEmpty(modal.COO) ? modal.COO: DBNull.Value);

faça o teste e me fala!

E

Rapaz eu pensei nisso, mas fiz em string
:stuck_out_tongue_closed_eyes:

D

É uma forma de implementar isso!

Tem também o cara que é Nullable mais ou menos assim:

(object)(modal.COO ?? DBNull.Value)

é normal essa dúvida!

E
Solucao aceita

@Dragoon eu contei com o ovo no “** da galinha”

deu certo assim.:
(!string.IsNullOrEmpty(modal.COO) ? (object)modal.COO: DBNull.Value);

ou com vc deu a ideia

((object)modal.COO)?? DBNull.Value

passando o cast para junto a string.
Valei demais pela dica, abriu a minha cabeça.

Criado 16 de março de 2017
Ultima resposta 16 de mar. de 2017
Respostas 4
Participantes 2