Metodi di Classi Public e Shared

Ciao a tutti,

Ho creato una classe con due metodi, uno di tipo public e l’altro di tipo shared.

  1. Ho due domande da fare, perch quello di tipo shared riesco a chiamarlo all’esterno della classe?

  2. Perch il metodo public non riesco a chiamarlo neanche all’interno della classe?

Ciao Domenico,

  1. Un metodo “shared” e’ indipendente dall’istanza della classe
  2. Potresti, se possibile, fornire un esempio di codice che evidenzia il problema?

Saluti

Allora ho Creato una classe di nome “TestClass”

All’interno della classe un Method di nome getInsert con questo codice:

[code] Dim isInsert as Boolean

isInsert = true

return isInsert[/code]

Ed in seguito un method Shared di nome getExist con questo codice:

[code] Dim isExist as Boolean

isExist = getInsert

return isExist[/code]

Dovrei usare il metodo getInsert all’interno del metodo condiviso getExist. Entrambi fanno parte della stessa classe. Mi da un errore.
Ora le mie domande sono:

  • Il metodo Condiviso lo strumento corretto per far utilizzare i metodi all’esterno della classe? Oppure serve un metodo esterno o metodo Normale?

  • Come faccio ad utilizzare i metodi creati nella classe all’interno della stessa classe?

Un metodo condiviso esiste indipendentemente dall’istanza della classe stessa e pertanto non ha riferimenti a nessuna istanza,
Non puoi quindi utilizzare un metodo condiviso per accedere a proprieta’ di un’istanza.

Qualsiasi metodo definito dalla classe e’ accessibile dalla classe stessa: non importa se il metodo e’ privato, pubblico o protetto.
Metodo pubblico: utilizzabile da chiunque abbia creato un’istanza della classe e quindi anche dall’esterno della classe.
Metodo privato: utilizzabile solo all’interno della classe e da nessun altro.
Metodo protetto: utilizzabile solo all’interno della classe e dalle classi derivate dalla classe stessa.

Definita la classe MyClass ottieni:

dim var As MyClass = new MyClass
var = istanza della classe MyClass

Se MyClass definisce il metodo Met1

var.met1() = chiamata del metodo dall’esterno della classe

Met1() oppure me.Met1() = chiamata del metodo dall’interno della classe.

Ti consiglio di leggere il documento PDF allegato all’ambiente “UserGuide - Fundamentals” capitolo 5 “Classes”.

Saluti

Maurizio sei stato molto Esplicito. Grazie per la risposta.

Mi scarico il PDF.

Grazie e spero di poter ricambiare :wink: