Das Problem mit dem anderen Fall ist, habe ich auf den ProblemlinienWas ist der Fehler bei der Eingabe der Zeichenkette, die zu Nullreferenzen führt?
kommentiertstatic void Main(string[] args)
{
XMLData xmldataExample = new XMLData();
Usergaz usergazExample = new Usergaz();
UsergazItem usergazitemExample = new UsergazItem();
UsergazItem item = new UsergazItem();
string filename = @"C:\Users\565133\Desktop\test.xml";
Deserialize<XMLData> deserializeobj = new Deserialize<XMLData>();
Console.WriteLine("Choose \n1.Serialization\n2.Deserialization\n3.Deserialize only a token");
//It works when I give tknid input line here
int inp = Console.Read();
string tknid = Console.ReadLine();//It doesn't work if I get tknid input here
if (inp == 1)
{
usergazitemExample.getusergazitem();
usergazExample.getusergaz();
usergazExample.gazitem.Add(usergazitemExample);
xmldataExample.getxmldata();
xmldataExample.gazset.Add(usergazExample);
serial(xmldataExample, filename);
Console.WriteLine("Its done");
Console.ReadKey();
}
else if (inp == 2)
{
Console.WriteLine("Getting data from xml file");
// Deserialize<XMLData> deserializeobj = new Deserialize<XMLData>();
xmldataExample = deserializeobj.deserializefunction(filename);
List<Usergaz> samplelist = new List<Usergaz>();
samplelist = xmldataExample.gazset;
MTable.initialize();
MTable.usergazzetterset.Add(xmldataExample.updatedtime, samplelist);
Console.WriteLine("Deserialization complete, check the object");
Console.ReadKey();
}
In diesem Fall anders, ich bin Filterung mit tknid, aber noch bevor ich Eingang tknid vom Benutzer, ich Nullreference Ausnahme erhalten sagen, das 'Objekt' Objekt ist null. ich die Ausnahme von der Console.WriteLine Linie
wies else
{
//Console.WriteLine("Getting only a specific token Enter the token id");
//string tknid;
//tknid = Console.ReadLine();
//I intended to give tknid input here, but I cannot do it...
//Console.WriteLine(tknid);
//Console.ReadKey();
//string tknid = "3"; Initializing tknid with this statement works fine
item = deserializeobj.deserializefunction(filename).gazset[0].gazitem.Where(X => X.id == tknid).FirstOrDefault();
Console.WriteLine("The value for the token id {0} is {1}", tknid,item.val);
Console.ReadKey();
}
}
, welcher Teil der Ausnahme sind Sie nicht verstehen - Artikel ist null & Sie versuchen, die val-Feld in der Console.WriteLine-Anweisung angezeigt werden - so verursacht item.val die Ausnahme . – PaulF
Wo ist tKnid definiert? Paul hat Recht, dass der Fehler darauf hinweist, dass die Elementvariable null ist, da tKnid nach der Eingabe von der Konsole empfangen wird.Readline ist eine Zeichenfolge. Setzen Sie einen Haltepunkt dort und sehen Sie, was die Werte sind. – JohnG
Ich bin ziemlich sicher, dass der obige Code einen Kompilierzeitfehler verursachen wird 'Der Name 'tknid' existiert nicht im aktuellen Kontext 'in Zeile:' tknid = Console.ReadLine(); ' – JohnG