Ich habe versucht, aus dem unmittelbaren Fenster zum Debuggen null zuzuweisen. Es hat aber nicht funktioniert. Wie kann dies erreicht werden?
Mahendran
@ Mahemadhi wahrscheinlich aus dem gleichen Grund können Sie es nicht in regulären Code tun. Wenn eine Variable als deklariert ist int, kann sie nullauch beim Debuggen nicht als Wert empfangen werden . Sie müssen es als deklarieren int?.
Pswg
Die Variable wird deklariert nullable. Im unmittelbaren Fenster konnte ich jedoch keine Null zuweisen.
Mahendran
99
Darüber hinaus können Sie "null" nicht als Wert in einer bedingten Zuweisung verwenden. z.B..
publicstaticint? Timesaday { get; set; }
staticvoidMain(string[] args)
{
Console.WriteLine(Timesaday == null);
//you also can check using
Console.WriteLine(Timesaday.HasValue);
Console.ReadKey();
}
Das Schlüsselwort null ist ein Literal, das eine Nullreferenz darstellt, die auf kein Objekt verweist. Bei der Programmierung sind nullfähige Typen ein Merkmal des Typsystems einiger Programmiersprachen, mit denen der Wert anstelle der üblichen möglichen Werte des Datentyps auf den speziellen Wert NULL gesetzt werden kann.
int ? index = null;
publicint Index
{
get
{
if (index.HasValue) // Check for valuereturn index.Value; //Return value if index is not "null"elsereturn777; // If value is "null" return 777 or any other value
}
set { index = value; }
}
value
. Zum BeispielEnum.Parse
,String.IndexOf
und (logisch)Dictionary<,>.TryGetValue
.Antworten:
In .Net können Sie
null
einerint
oder einer anderen Struktur keinen Wert zuweisen . Verwenden Sie stattdessen aNullable<int>
oderint?
kurz:int? value = 0; if (value == 0) { value = null; }
Weiterführende Literatur
quelle
int
, kann sienull
auch beim Debuggen nicht als Wert empfangen werden . Sie müssen es als deklarierenint?
.nullable
. Im unmittelbaren Fenster konnte ich jedoch keine Null zuweisen.Darüber hinaus können Sie "null" nicht als Wert in einer bedingten Zuweisung verwenden. z.B..
bool testvalue = false; int? myint = (testvalue == true) ? 1234 : null;
FEHLT mit:
Type of conditional expression cannot be determined because there is no implicit conversion between 'int' and '<null>'.
Sie müssen also auch die Null setzen ... Das funktioniert:
int? myint = (testvalue == true) ? 1234 : (int?)null;
quelle
Sie können nicht eingestellt
int
zunull
. Verwenden Sieint?
stattdessen ein nullbares int ( ):int? value = null;
quelle
int erlaubt nicht null, use-
int? value = 0
oder verwenden
Nullable<int> value
quelle
public static int? Timesaday { get; set; } = null;
ODER
public static Nullable<int> Timesaday { get; set; }
oder
public static int? Timesaday = null;
oder
public static int? Timesaday
oder nur
public static int? Timesaday { get; set; } static void Main(string[] args) { Console.WriteLine(Timesaday == null); //you also can check using Console.WriteLine(Timesaday.HasValue); Console.ReadKey(); }
Das Schlüsselwort null ist ein Literal, das eine Nullreferenz darstellt, die auf kein Objekt verweist. Bei der Programmierung sind nullfähige Typen ein Merkmal des Typsystems einiger Programmiersprachen, mit denen der Wert anstelle der üblichen möglichen Werte des Datentyps auf den speziellen Wert NULL gesetzt werden kann.
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null https://en.wikipedia.org/wiki/Null
quelle
Deklarieren Sie Ihre Ganzzahlvariable als nullbar, z.
int? variable=0; variable=null;
quelle
int ? index = null; public int Index { get { if (index.HasValue) // Check for value return index.Value; //Return value if index is not "null" else return 777; // If value is "null" return 777 or any other value } set { index = value; } }
quelle
Verwenden Sie Null.NullInteger, z. B.: Private int _ReservationID = Null.NullInteger;
quelle