C# richiamare metodi da altri namespace

di il
10 risposte

C# richiamare metodi da altri namespace

Ciao ragazzi
io vengo dal C e ho fatto qualcosina (veramente poco di C++).
Data l'assenza di un programmatore C# mi hanno rifilato di terminare un programma e ho qualche difficoltà su una specifica modifica.

In un namespace ho dichiarato un metodo che mi consente di scegliere un file dal mio computer:

namespace upgrade
{
public void button1_Click(object sender, EventArgs e)
{
// new frmTestToF().ShowDialog();

OpenFileDialog ofd = new OpenFileDialog(); // inizializzo

ofd.InitialDirectory = @"//C";

if (ofd.ShowDialog() == DialogResult.OK)
{

string nome_firmware = ofd.FileName; // è il file da caricare


}
}
}



su altro file dello stesso programma , io vado a leggere il binario che ho selezionato:


if (getToken("Waiting for the file to be sent") || (sw.ElapsedMilliseconds > 3000))
{

buf = File.ReadAllBytes("fileDAinserire.hex");

fpos = 0;
remaining = buf.Length;
sw.Restart();
state++;
}
break;



sto provando ad inserire il file da leggere in quel "buf" .
ho provato a fare in un include e tentare di dichiarare la classe come in C++
e di far diventare nome_firmware una variabile globale come in C
ma non ho avuto successo.

Potete aiutarmi ?

grazie

10 Risposte

  • Re: C# richiamare metodi da altri namespace

    Che io sappia, un namespace non può contenere dei metodi.

    Nella piattaforma .NET, i namespace hanno lo scopo di raggruppare classi e altri tipi di dati: sono questi ultimi che possono tutt'al più contenere un metodo.

    Prima di mettere mano a qualsiasi cosa e iniziare a scrivere la primissima riga di codice, mi documenterei un attimo su quelle che sono le basi della programmazione .NET, altrimenti prevedo grossissimi problemi.
  • Re: C# richiamare metodi da altri namespace

    Alka ha scritto:


    Che io sappia, un namespace non può contenere dei metodi.

    Nella piattaforma .NET, i namespace hanno lo scopo di raggruppare classi e altri tipi di dati: sono questi ultimi che possono tutt'al più contenere un metodo.

    Prima di mettere mano a qualsiasi cosa e iniziare a scrivere la primissima riga di codice, mi documenterei un attimo su quelle che sono le basi della programmazione .NET, altrimenti prevedo grossissimi problemi.
    si vedi sopra. namespace contiene button1_Click che a sua volta contiene ofd.FileName
    e a me serve portare quel ofd.FileName in buf .
    purtroppo ho tempi strettissimi per la consegna e quindi non posso fare un sistemico studio su questo.
  • Re: C# richiamare metodi da altri namespace

    Un namespace, come ti è stato detto, non può contenere direttamente metodi.

    Quindi quella parte di codice
    
    namespace upgrade
    {
       public void button1_Click(object sender, EventArgs e)
       {
          // new frmTestToF().ShowDialog();
    
          OpenFileDialog ofd = new OpenFileDialog(); // inizializzo
    
          ofd.InitialDirectory = @"//C";
    
          if (ofd.ShowDialog() == DialogResult.OK)
          {
               string nome_firmware = ofd.FileName; // è il file da caricare
          }
        }
    }
    
    così come l'hai mostrato, NON può essere compilata

    error CS0116: Uno spazio dei nomi non può contenere direttamente membri come campi o metodi

    Quindi, o c'è qualcosa che non hai mostrato, o non c'è modo di aiutarti ...
  • Re: C# richiamare metodi da altri namespace

    Montanaro ha scritto:


    purtroppo ho tempi strettissimi per la consegna e quindi non posso fare un sistemico studio su questo.
    Mi spiace ma non si può pretendere l'impossibile, ossia lavorare a qualcosa di cui non si conoscono nemmeno i principi fondamentali di funzionamento, a prescindere dalle tempistiche, come se poi andare a tentoni e per tentativi non fosse una inutile perdita di tempo che potrebbe essere proficuamente impiegata a leggersi un paio di cose, visto che nessuno ha parlato di "studio sistemico".

    Questo modo di procedere poi, impedisce anche di ricevere aiuto qui, perché qualsiasi soluzione ti verrà proposta usando termini e concetti che se ti sono oscuri non avrai la possibilità di comprenderli: se ti viene suggerito come usare un namespace e non sai cos'è, la perdita di tempo è da parte di entrambi.

    Scusa la franchezza, ma io la penso in questo modo.
  • Re: C# richiamare metodi da altri namespace

    Alka ha scritto:


    Montanaro ha scritto:


    purtroppo ho tempi strettissimi per la consegna e quindi non posso fare un sistemico studio su questo.
    Mi spiace ma non si può pretendere l'impossibile, ossia lavorare a qualcosa di cui non si conoscono nemmeno i principi fondamentali di funzionamento, a prescindere dalle tempistiche, come se poi andare a tentoni e per tentativi non fosse una inutile perdita di tempo che potrebbe essere proficuamente impiegata a leggersi un paio di cose, visto che nessuno ha parlato di "studio sistemico".

    Questo modo di procedere poi, impedisce anche di ricevere aiuto qui, perché qualsiasi soluzione ti verrà proposta usando termini e concetti che se ti sono oscuri non avrai la possibilità di comprenderli: se ti viene suggerito come usare un namespace e non sai cos'è, la perdita di tempo è da parte di entrambi.

    Scusa la franchezza, ma io la penso in questo modo.
    beh ho risolto problemi anche piu complessi di questo partendo da posizioni ben più arretrate.
    nelle aziende si lavora cosi. pochi giorni per imparare e risolvere il problema. di questi tempi poi è piu che mai necessario.
    ti ringrazio lo stesso dell'aiuto
  • Re: C# richiamare metodi da altri namespace

    oregon ha scritto:


    Un namespace, come ti è stato detto, non può contenere direttamente metodi.

    Quindi quella parte di codice
    
    namespace upgrade
    {
       public void button1_Click(object sender, EventArgs e)
       {
          // new frmTestToF().ShowDialog();
    
          OpenFileDialog ofd = new OpenFileDialog(); // inizializzo
    
          ofd.InitialDirectory = @"//C";
    
          if (ofd.ShowDialog() == DialogResult.OK)
          {
               string nome_firmware = ofd.FileName; // è il file da caricare
          }
        }
    }
    
    così come l'hai mostrato, NON può essere compilata

    error CS0116: Uno spazio dei nomi non può contenere direttamente membri come campi o metodi

    Quindi, o c'è qualcosa che non hai mostrato, o non c'è modo di aiutarti ...


    si il codice è molto complesso e lungo. molto piu di quello che ti ho mostrato, coinviolge la gestione di un i2c, delle porte usb, di video.
    ti ho mostrato solo l'ultima parte che mi manca da modificare.
    a me manca una specifica parte. saranno due righe di codice.
  • Re: C# richiamare metodi da altri namespace

    Montanaro ha scritto:


    nelle aziende si lavora cosi.
    Poi mi taccio (per tutti i motivi già espressi), ma intervengo solo su questo punto per dire che tutt'al più si lavorerà così nella tua azienda, o in quelle con cui hai avuto a che fare tu. Nella mia sicuramente non si fa così.

    Ciao!
  • Re: C# richiamare metodi da altri namespace

    Alka ha scritto:


    Montanaro ha scritto:


    nelle aziende si lavora cosi.
    Poi mi taccio (per tutti i motivi già espressi), ma intervengo solo su questo punto per dire che tutt'al più si lavorerà così nella tua azienda, o in quelle con cui hai avuto a che fare tu. Nella mia sicuramente non si fa così.

    Ciao!

    già ma le mie sono anche le più solide nei rispettivi settori
    ci vediamo tra qualche giorno con la soluzione
    buona giornata
  • Re: C# richiamare metodi da altri namespace

    Risolto! Invece di portare odf.Filename nel file di buf ho portato buf nel file di odf.Filename e reso public entrambi, duplicando gli using
    poi quando avrò tempo capirò meglio cosa andava storto. per ora mi serve solo che funzioni
  • Re: C# richiamare metodi da altri namespace

    Montanaro ha scritto:


    Invece di portare odf.Filename nel file di buf ho portato buf nel file di odf.Filename e reso public entrambi, duplicando gli using
    poi quando avrò tempo capirò meglio cosa andava storto. per ora mi serve solo che funzioni
    Va beh ... contento tu.

    Ovviamente condivido pienamente quanto ti ha detto Alka. E mi taccio anch'io. Saluti Montanaro.
Devi accedere o registrarti per scrivere nel forum
10 risposte