private string? typeOfContract
{
get { return (string?)ViewState["typeOfContract"]; }
set { ViewState["typeOfContract"] = value; }
}
Posteriormente no código, eu o uso assim:
typeOfContract = Request.QueryString["type"];
Estou recebendo o seguinte erro na declaração da typeOfContract
linha informando:
O tipo 'string' deve ser um tipo de valor não anulável para usá-lo como parâmetro 'T' no tipo ou método genérico 'System.Nullable <T>'
Alguma ideia? Basicamente, quero garantir que "type"
exista QueryString
antes de executar uma ação.
string?
para dizer ao mundo que essa string pode ser nula.Você está tornando isso complicado.
string
já é anulável. Você não precisa torná-lo mais anulável. Retire?
o tipo de propriedade.fonte
string não pode ser o parâmetro Nullable porque string não é um tipo de valor. String é um tipo de referência.
é uma declaração muito válida e não é necessário torná-la anulável.
deve trabalhar por causa da como palavra-chave.
fonte
String é um tipo de referência, portanto você não precisa (e não pode) usar
Nullable<T>
aqui. Apenas declare typeOfContract como string e simplesmente verifique se há nulo depois de obtê-lo da string de consulta. Ou use String.IsNullOrEmpty se desejar manipular valores de string vazios da mesma forma que null.fonte
Para anulável, use
?
com todas as primitivas de C # , exceto a sequência.A página a seguir fornece uma lista dos primitivos em C # : http://msdn.microsoft.com/en-us/library/aa711900(v=vs.71).aspx
fonte
Observe que na próxima versão do C #, que é 8, as respostas não são verdadeiras.
All the reference types are non-nullable by default
e você pode realmente fazer o seguinte:Contudo,
O importante aqui é mostrar a intenção do seu código. Se a "intenção" é que o tipo de referência possa ser nulo, marque-o, caso contrário, a atribuição de valor nulo a não nulo resultaria em aviso do compilador.
Mais informações
Para o moderador que está excluindo todas as respostas, não faça isso. Acredito firmemente que esta resposta agrega valor e a exclusão impediria alguém de saber o que é certo no momento. Como você excluiu todas as respostas, estou postando novamente a resposta aqui. O link que foi enviado sobre "duplicatas" é simplesmente uma abertura para algumas pessoas e eu não acho que seja uma recomendação oficial.
fonte