Welcome, Guest
Username: Password: Remember me
Qui si parla italiano
  • Page:
  • 1

TOPIC:

Aggiungere metodi o istanze ad una classe 07 Aug 2018 11:54 #5756

  • softdevo@tiscali.it's Avatar
  • Topic Author


  • Posts: 174
  • Salve a tutti, ho un dubbio:

    in VO potevo avere una classe definita in una dll esempio:
    In MiaDLL.dll

    CLASS Test
    METHOD Init( ) CLASS Test
    ……….
    RETURN self

    in un mio exe potevo scrivere:

    METHOD Altro() CLASS Test

    Questo in Vulcan non era possibile, si doveva subclassare Test.
    Ora mi chiedo in X# è ancora così o c'è modo di dichiarare la classe in qualche modo?
    Spero di essere stato chiaro.

    Grazie

    Danilo

    Please Log in or Create an account to join the conversation.

    Aggiungere metodi o istanze ad una classe 07 Aug 2018 12:13 #5758

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3245
  • Ciao Danilo,

    purtroppo .NET non permette questo.

    Esiste però una eccezione: i cosiddetti extension methods che permettono di estendere metodi di una classe:

    docs.xsharp.it/doku.php?id=extension_methods

    Praticamente puoi scrivere nuovi metodi per una classe, definendo una classe statica - vedi l'esempio del wiki,

    Esiste qualche limite: il metodo di estensione non ha accesso alle variabili protette della classe perchè in effetti viene attaccato esternamente. E devi indicare chiaramente anche lo namespace dove sono state dichiarate questi metodi.
    Per quanto invece riguarda access/assign (che sotto la pelle vengono trasformate in property) non esiste possibilità.

    Personalmente preferisco ereditare la classe perchè mi sembra più pulito, ma non è sempre possibile.

    Saluti

    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    Aggiungere metodi o istanze ad una classe 10 Aug 2018 18:01 #5797

    • Fab64
    • Fab64's Avatar


  • Posts: 63
  • Forse è possibile utilizzando il classmodifier PARTIAL
    www.xsharp.eu/help/class.html

    ovvero se in una DLL hai definito per esempio la seguente Classe

    Partial Class Test
    method pippo ()
    end Class

    è possibile aggiungere altri metodi in questo modo in altre parti del programma:

    partial Class test
    method pluto()
    end class

    qui c'è un esempio in C#
    docs.microsoft.com/it-it/dotnet/csharp/p...-classes-and-methods

    Saluti,
    Fabrizio

    Please Log in or Create an account to join the conversation.

    Aggiungere metodi o istanze ad una classe 10 Aug 2018 19:32 #5798

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3245
  • Ciao Fabrizio,

    con partial funziona solo all'interno dello stesso applicativo.
    Praticamente serve per suddividere una classe su più file, ma solo dentro una assembly.

    Non lo puoi usare per aggiungere metodi a una classe di un'altra assembly.

    Saluti

    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    • Page:
    • 1
    Moderators: wriedmann