Sono un programmatore C# molto nuovo, meno di ~ 24 ore effettive di digitazione/programmazione non elaborata. Direi comunque circa una settimana di leggere, guardare e cercare di capire le cose.Risolve il futuro codice problematico?
Ecco il codice sorgente per il mio primo programma:
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);
}
}
}
}
Il programma fa esattamente quello che voglio io. L'utente digita il codice di controllo bug che sta ottenendo, riprende la definizione MSDN-MSFT di base e chiede di digitare un altro codice di controllo bug o uscire per uscire dal programma.
Tuttavia, in base ai materiali video/di lettura, una cosa importante da imparare è come individuare il codice che sarà un problema in futuro. Bene, almeno dal mio punto di vista, il metodo in cui sto usando per verificare il valore dell'input dell'utente riguardo il controllo degli errori non è potenzialmente buono, perché alla fine sarà modo troppo grande e disordinato dato il numero di bug controlla ci sono.
Così ho fatto qualche ricerca e ho scoperto i dizionari, in ordine. Sono arrivato fino a questo:
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();
}
}
}
Ora la domanda a me stesso per tutto il tempo è stato "Come diavolo faccio a implementare questo nel mio codice attuale?", E io ancora non so davvero che mi vergogno a dire. Ho provato a cercare e cercare di creare/gestire nuove Classi e, sebbene fosse un po 'di confusione, ne ho avuto l'idea di base e ho scritto un programma rapido che non richiede l'input dell'utente, ma invece stampa sulla console :
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;
}
}
}
Così ho sorta di capire le basi di dizionari e le classi, ma non ho ancora idea di come implementare il/un metodo migliore nel mio attuale programma "controllo bug".
Qualche consiglio, suggerimenti? Ho cercato di rendere il mio post per dimostrare che stavo cercando il più possibile di capirlo da solo perché so che StackOverflow aggrotta le sopracciglia sulle persone che cercano di convincere gli altri a codificarsi per loro, non so dove altro guardare/leggere per capirlo, o almeno come farlo nella giusta direzione.
questo è un po 'dappertutto. Non sei sicuro di quale sia l'ultimo terzo riguardo alle classi personalizzate. Vuoi implementare il tuo dizionario nel tuo codice già funzionante? Che problemi avevi? – Jonesopolis
Mentre io (e probabilmente anche il resto di noi) apprezzo davvero quanto impegno ci sia stato in questo, abbiamo bisogno di una domanda specifica. È come usare i dizionari? Come rifattorizzare il codice esistente per utilizzare i dizionari? Dio non voglia, dove trovare un tutorial? –
Scusa amico, la terza (classi personalizzate) è lì perché pensavo di aver bisogno di capire le classi per implementare i dizionari nel mio codice già funzionante.Il problema principale che sto avendo è (ripetendomi qui) alla fine non ho idea di come implementare i dizionari degli strumenti nel mio codice già funzionante. – ajdbnabad13