sto cercando di risolvere il seguente esercizio:genera un errore quando l'utente entra nullo o vuoto stringa
È necessario creare una classe denominata
Product
che rappresenta un prodotto. La classe ha una singola proprietà denominataName
. Gli utenti della classeProduct
devono essere in grado di ottenere e impostare il valore della proprietàName
. Tuttavia, qualsiasi tentativo di impostare il valore diName
in una stringa vuota o un valore null dovrebbe generare un'eccezione. Inoltre, gli utenti della classeProduct
non dovrebbero poter accedere ad altri membri di dati della classeProduct
. Come creerai una classe del genere?
ho creato il seguente codice ma per qualche motivo non generare l'eccezione quando la stringa non valida:
class Program
{
static void Main(string[] args)
{
Product newProduct = new Product();
Console.WriteLine("Enter Product name:");
newProduct.Name = null; //Console.ReadLine();
Console.WriteLine("Product name is : {0}", newProduct.Name);
Console.ReadLine();
}
}
class Product
{
private string name;
public string Name
{
get
{
return this.name;
}
set
{
if (Name != String.Empty || Name != null)
{
name = value;
}
else
{
throw new ArgumentException("Name cannot be null or empty string", "Name");
}
}
}
}
è l'eccezione non torta perché non ho try-catch
affermazione? Mi stavo anche chiedendo è possibile avere solo una dichiarazione catch senza una dichiarazione try?
Si sta controllando il valore precedente (che è valido). Usa 'valore' invece di' Nome' in 'if' per convalidare il nuovo valore. Oppure prova a impostare 'Name' all'interno di' Main' due volte;) – Sinatr
Non puoi prendere senza provare. Altrimenti, come farebbe a sapere di quale codice dovrebbe attingere? Anche se non hai un try/catch, le eccezioni vengono comunque lanciate. Non stai raggiungendo il codice. Impara a utilizzare gli strumenti di debug dell'IDE per scorrere il codice riga per riga mentre viene eseguito. Penso che individuerai il problema abbastanza velocemente in questo modo. – mason
Stai usando un 'o' nella tua istruzione if. Se 'Nome == null', quindi' Name! = String.Empty' e quella parte passa. Usa '&&'. – JArkinstall