PDA

View Full Version : C# & dichiarazione di classi e metodi


The March
09-02-2005, 11:55
Ola!

sto iniziando a vedere un po di C# ma non ho uno schema preciso che mi spieghi i diversi tipi di classi e metodi che si possono dichiarare.

qualcuno può spiegarmi le varie differenze tra i diversi tipi?

public e private li so :D

static, interface, virtual... ecc sono nel buio totale :(



chi ha voglia di spiegarmi qualcosa?

plz......

;)

RBlade79
09-02-2005, 13:32
Anch'io ho iniziato da poco a vedere qualcosa di C#...spero di esserti di aiuto.

Il modificatore static si può usare su membri e metodi di una classe; indica che il membro o metodo a cui si riferisce non è associato ad una specifica istanza della classe, quanto piuttosto alla classe stessa nel suo complesso (tutte le istanze generate modificheranno lo stesso membro).

Il modificatore "virtual" si può usare sui metodi di una classe base, mentre sugli stessi metodi (se ci sono) delle classi derivate si utilizzerà "override"; in questo modo il compilatore saprà scegliere la versione corretta della funzione da chiamare in base al tipo reale dell'oggetto (è più complicato di così, ma spero che si capisca qualcosa...).

Il modificatore abstract si usa per definire una classe base e alcuni suoi membri. Le classi derivate ereditano tutto, ma devono obbligatoriamente definire una loro versione dei membri che sono abstract nella classe base.

Le interfacce, infine, sono delle entità simili a delle classi atratte che hanno tutti i membri astratti; le classi che usano quindi un'interfaccia devono definire obbligatoriamente una loro versione delle funzioni definite dall'interfaccia. Una differenza rispetto alle classi astratte è che una classe derivata può sfruttare più interfacce (mentre in C#, ragionando con le classi, ogni classe può al massimo ereditare da una sola classe base).

Ci sono molte altre cose sulle classi...ora vado un po' di fretta e spero di esserti stato di aiuto. Se avessi ancora bisogno chiedi pure...ciao!

Einstein
15-02-2005, 22:01
abstract significa che quella classe può essere usata solo come classe base di un'altra classe.
Es.

public abstract class MyClass
{
...
}

public class MySecondClass : MyClass
{
...
}

MyClass a = new MyClass(); // Errore
MySecondClass b = new MySecondClass(); // Ok

Il suo opposto è sealed, che significa appunto che quella classe non può essere derivata.

Ciao

The March
16-02-2005, 08:21
Originariamente inviato da Einstein
abstract significa che quella classe può essere usata solo come classe base di un'altra classe.
Es.

public abstract class MyClass
{
...
}

public class MySecondClass : MyClass
{
...
}

MyClass a = new MyClass(); // Errore
MySecondClass b = new MySecondClass(); // Ok

Il suo opposto è sealed, che significa appunto che quella classe non può essere derivata.

Ciao

Grazie ad entrambe, sono riuscito a trovare un documento nel quale vengono spiegati alcuni tipi
;)