Phil93 (Normal User)
Pro
Messaggi: 85
Iscritto: 26/01/2011
|
Salve a tutti.
Come faccio a creare proprietà "nidificate"? Per esempio:
TextBox1.Text
TextBox1.Text.Length
Più precisamente, dovrei far esporre una proprietà alla proprietà "Message" di una classe che eredita da Exception.
Cosa devo mettere in questo blocco?
Codice sorgente - presumibilmente VB.NET |
Public Overrides ReadOnly Property Message As String Get Return "Process failed." End Get End Property
|
Grazie.
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
No, non è quello che vuole fare, presumo.
Nel tuo esempio TextBox1 è un oggetto di tipo TextBox, il quale espone la proprietà Text, che contiene un oggetto di tipo stringa. Tutte le stringhe dispongono della proprietà Length; quindi, come ha detto HeDo, il concetto che hai di proprietà nidificate è sbagliato. Non esistono cose del genere. Esistono solo proprietà che restituiscono altri oggetti con altre proprietà.
Esempio:
Codice sorgente - presumibilmente C++ |
class Person { public Person Father { get; set; } public Person Mother { get; set; } public Person Mate { get; set; } public List<Person> Children { get; set; } // ... } // Assumendo che non esistano oggetti nulli: Person mySelf = new Person("Mario", "Rossi", "6/7/1980"); // ... // Ecco il comportamento che chiami proprietà nidificate: Person grandFather = mySelf.Father.Father; // nonno Person motherInLaw = mySelf.Mate.Mother; // suocera Person nephew = mySelf.Father.Children[1].Children[0]; // nipote (di zio)
|
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Allora, quelle che tu chiami "proprietà di proprietà" o "proprietà nidificate" altro non sono che proprietà (o campi) di oggetti che sono proprietà di un oggetto.
Quello che vuoi fare te si può implementare molto semplicemente ereditando dalla classe Exception e implementando un opportuno costruttore:
Codice sorgente - presumibilmente VB.NET |
Class MyException Inherits Exception Public Sub New() MyBase.New("Process Failed") End Sub End Class
|
in questo modo potrai sollevare l'eccezione MyException senza doverti preoccupare del message, perchè verrà visualizzato "Process Failed":
Codice sorgente - presumibilmente C# / VB.NET |
in alternativa potevi fare qualcosa di questo genere:
Codice sorgente - presumibilmente C# / VB.NET |
Throw New Exception("Process Failed")
|
|
|