Articles of anulável

Não é possível alterar o tipo para anulável no método genérico

Estou criando um conversor genérico Aqui está um exemplo de código do conversor genérico bool TryReaderParse(object data, out TType value) { value = default(TType); Type returnType = typeof(TType); object tmpValue = null; if (returnType == typeof(DateTime)) { tmpValue = StringToDatetime(data.ToString()); } else if (returnType == typeof(DateTime?)) // THIS IF FIRES { tmpValue = StringToNullableDatetime(data.ToString()); } […]

Casting (int?) Null versus novo int? () – Qual é o melhor?

Eu uso muito Nullable tipos ao carregar valores em classs e estruturas quando preciso que eles sejam anuláveis, como carregar um valor anulável de um database (como o exemplo abaixo). Considere este trecho de código: public class InfoObject { public int? UserID { get; set; } } // Load the ID into an SqlInt32 SqlInt32 […]

Sobrecarregando as ações do controlador

Fiquei um pouco surpreso há alguns minutos quando tentei sobrecarregar uma ação em um dos meus controladores eu tinha public ActionResult Get() { return PartialView(/*return all things*/); } Eu adicionei public ActionResult Get(int id) { return PartialView(/*return 1 thing*/); } …. e, de repente, não estavam trabalhando Eu consertei o problema tornando ‘id’ anulável e […]

Pegue o maior de dois valores anuláveis

Suponha que eu tenha dois inteiros anuláveis: int? a = 10; int? b = 20; Eu quero tomar o maior valor não nulo, de tal forma que se ambos os valores forem nulos, o resultado será nulo. Eu poderia escrever algo prolixo como: int? max; if (a == null) { max = b; } else […]

Por que é Nullable anulável? Por que não pode ser reproduzido?

Quando escrevo Nullable<Nullable> test = null; Eu recebo um erro de compilation: The type ‘System.Datetime?’ must be a non-nullable value type in order to use it as a paramreter ‘T’ in the generic type or method ‘System.Nullable’ Mas Nullable é uma struct portanto, ela deve ser não anulável. Então eu tentei criar essa struct : […]

Usando tipos anuláveis ​​em expressões Linq

var quantSubset = from userAns in userAnalysis.AllUserAnswers join ques in userAnalysis.AllSeenQuestions on userAns.QID equals ques.QID where (ques.QuestionType == “QT”) select new { QuestionLevel = ques.LevelID, TimeTaken = userAns.TimeTaken, Points = userAns.Points, UsedWeapon = (userAns.UsedBy2 && userAns.UsedHint), WasCorrect = userAns.WasCorrect.HasValue ? userAns.WasCorrect.Value : null }; Na minha expressão select eu quero selecionar um tipo anulável WasCorrect […]

Coloque um nulo em algo?

Eu tive essa interessante discussão hoje com um colega. Nós estávamos debatendo dois pedaços de código em C #. Snippet de código 1: if(!reader.IsDBNull(2)) { long? variable1 = reader.GetInt64(2) } Snippet de código 2: long variable1 = reader.IsDBNull(2) ? (long?) null : reader.GetInt64(2) A pergunta é: é uma boa prática lançar nulo em um valor […]

Por que não há método Nullable .Equals (valor T)?

Vamos começar com um código muito simples: decimal d = 2; Console.WriteLine(“d == 2 = {0}”, d == 2); Console.WriteLine(“d == (decimal)2 = {0}”, d == (decimal)2); Console.WriteLine(“d.Equals(2) = {0}”, d.Equals(2)); Console.WriteLine(“d.Equals((decimal)2) = {0}”, d.Equals((decimal)2)); O resultado é 4xtrue. Agora, vamos alterar um tipo de variável d para decimal? : decimal? d = 2; Desta […]

Método de extensão para enum anulável

Estou tentando escrever um método de extensão para Enums anuláveis. Como com este exemplo: // ItemType is an enum ItemType? item; … item.GetDescription(); Então eu escrevi este método que não compila por algum motivo que eu não entendo: public static string GetDescription(this Enum? theEnum) { if (theEnum == null) return string.Empty; return GetDescriptionAttribute(theEnum); } Estou […]

Como criar estrutura com suporte ao valor nulo?

Eu sou novo em c #. Em c # não consigo definir o valor de uma estrutura como nulo Como posso criar uma estrutura com suporte ao valor nulo?