Ich bin ein sehr neuer C# -Programmierer, weniger als ~ 24 tatsächliche Stunden des rohen Schreibens/Programmierens. Ich würde sagen, ungefähr eine Woche lang, zu lesen, zu beobachten und zu versuchen, die Dinge zu verstehen.Behebung zukünftiger problematischer Code?
Hier ist der Quellcode zu meinem ersten Programm:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Bugcheck
{
class Program
{
static void Main(string[] args)
{
// Initializing variables
string bugcheckExit = "exit";
var message = "";
var afterMessage = "Type another bug check, or \"exit\" to quit:\n";
Console.BackgroundColor = ConsoleColor.Blue;
Console.Clear();
// Write welcome message to screen
Console.WriteLine("Type a bug check code (for example - 0xD1), or \"exit\" to quit:\n");
while (true)
{
// Take in user input
string userInput = Console.ReadLine().ToLower();
// Check user input
if (userInput == bugcheckExit)
System.Environment.Exit(1);
// Checking value of bug check
if (userInput == "0xd1")
message = "DRIVER_IRQL_NOT_LESS_OR_EQUAL\n" +
"This indicates that a kernel-mode driver attempted to access pageable memory at\n" +
"a process IRQL that was too high.\n";
else if (userInput == "0xa")
message = "IRQL_NOT_LESS_OR_EQUAL\n" +
"This indicates that Microsoft Windows or a kernel-mode driver accessed\n" +
"paged memory at DISPATCH_LEVEL or above.\n";
else if (userInput == "0x1e")
message = "KMODE_EXCEPTION_NOT_HANDLED\n" +
"This indicates that a kernel-mode program generated an exception which the\n" +
"error handler did not catch.\n";
else
message = "Not a valid bug check, please try again.\n";
Console.WriteLine(message);
Console.WriteLine(afterMessage);
}
}
}
}
Das Programm macht genau das, was ich will es. Der Benutzer gibt den Fehlerprüfcode ein, den er erhält, er schießt die sehr grundlegende MSDN-MSFT-Definition zurück und fordert Sie auf, entweder einen anderen Fehlerprüfcode einzugeben oder den Befehl zum Beenden des Programms zu beenden.
Jedoch laut Videos/Lesematerialien, eine wichtige Sache zu lernen ist, wie Code zu erkennen, der ein Problem in der Zukunft sein wird. Nun, zumindest aus meiner Sicht ist die Methode, mit der ich den Wert der Benutzereingaben in Bezug auf die Fehlerprüfung überprüfe, möglicherweise nicht gut, weil es schließlich Weg zu groß und chaotisch angesichts der Anzahl sein wird Bug Checks gibt es.
Also habe ich etwas recherchiert und herausgefunden, Wörterbücher, ordentlich. Ich kam mit dieser:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Dictionary
{
class Program
{
static void Main(string[] args)
{
string value = "";
Dictionary<string, string> openWith = new Dictionary<string, string>
{
{ "0xa", "This indicates that Microsoft Windows or a kernel-mode driver accessed\n" +
"paged memory at DISPATCH_LEVEL or above.\n" },
{ "0xd1", "This indicates that a kernel-mode driver attempted to access pageable memory at\n" +
"a process IRQL that was too high.\n" }
};
if (openWith.TryGetValue("0xd1", out value))
{
Console.WriteLine(value);
}
else
{
Console.WriteLine(" is not found");
}
Console.ReadLine();
}
}
}
Nun ist die Frage für mich die ganze Zeit gewesen „Wie zum Teufel mache ich das in meinem aktuellen Code implementieren?“, Und ich weiß noch nicht wirklich, was eine Schande für mich sagen. Ich habe versucht, nachzuschlagen und nach neuen Klassen zu suchen/zu managen, und obwohl es etwas verwirrend war, habe ich die Grundidee davon und habe ein schnelles Programm geschrieben, das nicht nach Benutzereingaben fragt, sondern einfach nur auf die Konsole druckt ich verstehe irgendwie die Grundlagen der Wörterbücher und Klassen
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GPU
{
class Program
{
static void Main(string[] args)
{
GPU myNewGPU = new GPU();
myNewGPU.Make = "nVidia";
myNewGPU.Model = "GTX 970";
myNewGPU.Year = 2014;
myNewGPU.Color = "Black";
Console.WriteLine("{0} - {1} - {2}",
myNewGPU.Make,
myNewGPU.Model,
myNewGPU.Color);
Console.WriteLine("GPU's value: {0:G}", myNewGPU.DetermineMarketValue());
Console.ReadLine();
}
}
class GPU
{
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }
public string Color { get; set; }
public double DetermineMarketValue()
{
double GPUValue = 100.0;
if (this.Year > 2010)
GPUValue = 400.0;
else
GPUValue = 100.0;
return GPUValue;
}
}
}
Also, aber ich habe noch keine Ahnung, wie die/eine bessere Methode in meiner aktuellen „Fehlerprüfung“ Programm zu implementieren.
Irgendwelche Ratschläge, Tipps? Ich versuchte, meinen Beitrag zu zeigen, dass ich so viel wie möglich versuchte, es selbst herauszufinden, weil ich weiß, dass StackOverflow die Leute missbilligt, nur um andere dazu zu bringen, für sie zu kodieren. Ich bin mir nicht sicher, wo ich sonst hinsehen sollte/lesen, um es herauszufinden, oder wie man es wenigstens in die richtige Richtung bringt.
das ist irgendwie überall. Nicht sicher, was das letzte Drittel über benutzerdefinierte Klassen ist. Möchten Sie Ihr Wörterbuch in Ihren bereits funktionierenden Code implementieren? Welche Probleme hatten Sie? – Jonesopolis
Während ich (und wahrscheinlich auch der Rest von uns) wirklich zu schätzen weiß, wie viel Aufwand in diese Sache gesteckt wurde, brauchen wir eine spezifische Frage. Wie benutzt man Wörterbücher? Wie man vorhandenen Code umwandelt, um Wörterbücher zu verwenden? Gott bewahre, wo finde ich ein Tutorial? –
Tut mir leid, Kumpel, die dritte (benutzerdefinierte Klassen) ist da, weil ich dachte, ich musste Klassen verstehen, um Wörterbücher in meinen bereits funktionierenden Code zu implementieren.Das Hauptproblem, das ich habe (ich wiederhole mich hier), habe ich letztlich keine Ahnung, wie man Wörterbücher in meinen bereits funktionierenden Code implementiert. – ajdbnabad13