Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-03-2010, 22:20   #1
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
[C#]Riferimento a un oggetto non impostato su un'istanza di oggetto.

Ottengo questo errore (Riferimento a un oggetto non impostato su un'istanza di oggetto.) nel seguente codice. Eppure ho scritto TagLib.Tag[] tag = new TagLib.Tag[risultati_gracenote.Elements().Count()]; Che cosa non ho capito? (in grassetto ecco la parte che mi da errore, anche se suppongo che anche le altre 2 righe dopo lo darebbero )
Codice:
TagLib.Tag[] tag = new TagLib.Tag[risultati_gracenote.Elements().Count()];

            Console.WriteLine("Indice array è uguale a " + risultati_gracenote.Elements().Count());

            for (int a = 1; a <= risultati_gracenote.Elements().Count(); a++)
            {
                Console.WriteLine("a è uguale a " + a);
                Console.WriteLine("titolo: " + risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Element("ul").Value);
                Console.WriteLine("artisti: " + risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Elements().ElementAt(3).Value);
                Console.WriteLine("album: " + risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Elements().ElementAt(5).Value);
                tag[a].Title = risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Element("ul").Value;
                tag[a].Performers[0] = risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Elements().ElementAt(3).Value;
                tag[a].Album = risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Elements().ElementAt(5).Value;
            }
Grazie a tutti!
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2010, 22:42   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
Ottengo questo errore (Riferimento a un oggetto non impostato su un'istanza di oggetto.) nel seguente codice. Eppure ho scritto TagLib.Tag[] tag = new TagLib.Tag[risultati_gracenote.Elements().Count()]; Che cosa non ho capito? (in grassetto ecco la parte che mi da errore, anche se suppongo che anche le altre 2 righe dopo lo darebbero )
Codice:
TagLib.Tag[] tag = new TagLib.Tag[risultati_gracenote.Elements().Count()];

            Console.WriteLine("Indice array è uguale a " + risultati_gracenote.Elements().Count());

            for (int a = 1; a <= risultati_gracenote.Elements().Count(); a++)
            {
                Console.WriteLine("a è uguale a " + a);
                Console.WriteLine("titolo: " + risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Element("ul").Value);
                Console.WriteLine("artisti: " + risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Elements().ElementAt(3).Value);
                Console.WriteLine("album: " + risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Elements().ElementAt(5).Value);
                tag[a].Title = risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Element("ul").Value;
                tag[a].Performers[0] = risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Elements().ElementAt(3).Value;
                tag[a].Album = risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Elements().ElementAt(5).Value;
            }
Grazie a tutti!
Da come hai scritto il ciclo for immagino che tu non sappia che il primo elemento ha indice 0.
Il for dovrebbe infatti partire da 0.
Quindi, immagino, quello che e'
risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1)
vorrebbe esssere forse
risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(0)

Comunque ti consiglio di prendere i vari riferimenti, che tanto non costano assolutamente nulla e vengono risolti infase di compilazione.

qualcosa come
Codice:
var elementi = gracenote.Elements()
var elemento = elementi[a];
var sottoelementi = elemento.Elements();
var sottoelemeno = sottoelementi[0];
etc.
Cosi' quando ti ritrovi questo errore puoi risalire a quale e' l'elemento nullo.

Comunque, almeno il primo riferimento lo puoi ottenere ciclando direttamente sul primo elements(), che immagino implementi IEnumerable
Codice:
foreach(var elemento in gracenote.Elements())
{
   etc.

}
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2010, 23:11   #3
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
Lo sapevo ma non pensavo fosse un problema se partisse da uno.. Quindi invece lo è?
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2010, 23:18   #4
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
Lo sapevo ma non pensavo fosse un problema se partisse da uno.. Quindi invece lo è?
Quando scrivi
risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1)
se per esempio l'ultima collezione avesse 0 oppure 1 elemento solo, cercando di accedere tu al secondo elemento (che e' quello con indice 1), sollevi un'eccezione.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 00:24   #5
astorcas
Senior Member
 
L'Avatar di astorcas
 
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
credo che il problema sia che l'array è pieno di puntatori nulli.
L'operatore new sull'array non instanzia automaticamente tutti gli oggetti che contiene, quindi

Codice:
Tag[a].Title = risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Element("ul").Value;
genera una NullRreferenceException perché tag[a] è null
astorcas è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 00:27   #6
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Uno dei tanti errori possibili.
PRocedendo prendendo i riferimenti, passo dopo passo, puoi mettere delle guard e notificare di conseguenza invece che lasciare sollevare l'eccezione.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 10:11   #7
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Quando scrivi
risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1)
se per esempio l'ultima collezione avesse 0 oppure 1 elemento solo, cercando di accedere tu al secondo elemento (che e' quello con indice 1), sollevi un'eccezione.
questa opzione la scarterei subito
Quote:
Originariamente inviato da astorcas Guarda i messaggi
credo che il problema sia che l'array è pieno di puntatori nulli.
L'operatore new sull'array non instanzia automaticamente tutti gli oggetti che contiene, quindi

Codice:
Tag[a].Title = risultati_gracenote.Elements().ElementAt(a).Elements().ElementAt(1).Element("ul").Value;
genera una NullRreferenceException perché tag[a] è null
Probabilmente è proprio qui il problema. Come risolvo?
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 11:21   #8
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
Probabilmente è proprio qui il problema. Come risolvo?
tag[a] = new TagLib.Tag() ?
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 11:42   #9
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
mi sembra mi desse qualche errore di compilazione..
EDIT: ho controllato e in fase di compilazione dà questo errore: Impossibile creare un'istanza della classe o dell'interfaccia astratta 'TagLib.Tag'

Ultima modifica di Mattyfog : 01-04-2010 alle 11:55.
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 12:44   #10
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
mi sembra mi desse qualche errore di compilazione..
EDIT: ho controllato e in fase di compilazione dà questo errore: Impossibile creare un'istanza della classe o dell'interfaccia astratta 'TagLib.Tag'
Scusa ma il tipo di dato esatto lo dovresti conoscere te.
Io ho solo cercato di indovinare il tipo dal codice che hai postato e dato che tag è un array di TagLib.Tag pensavo che fosse un tipo concreto. In tal caso devi trovare nel codice qualche classe che implementi l'interfaccia o classe astratta TagLib.Tag o cercare nella documentazione della libreria.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 13:47   #11
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
Ah, quindi non è un problema di sintassi... Mannaggia..
Credo che risolverò usando un array di string perchè non saprei proprio dove cercare il tipo nel codice sorgente..
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 13:49   #12
astorcas
Senior Member
 
L'Avatar di astorcas
 
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
Ah, quindi non è un problema di sintassi... Mannaggia..
Credo che risolverò usando un array di string perchè non saprei proprio dove cercare il tipo nel codice sorgente..
implementala tu allora, tanto se è una classe astratta è probabile che il lavoro da fare non sia molto
astorcas è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 19:08   #13
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
Quote:
Originariamente inviato da astorcas Guarda i messaggi
implementala tu allora, tanto se è una classe astratta è probabile che il lavoro da fare non sia molto
Ma come faccio ad implementarla? Poi potrei associarla anche a TagLib?
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 20:35   #14
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
Ma come faccio ad implementarla? Poi potrei associarla anche a TagLib?
Codice:
public class MyTag : TagLib.Tag
{
...
}
L'auto completamento di Visual Studio fa il resto.

Cosa intendi per "associarla anche a TagLib"? TagLib a quanto si può capire dal codice sembra essere un namespace, puoi sempre racchiudere la tua implementazione all'interno di quel namespace.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 20:41   #15
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
Scusa è che sono ignorante... TagLib.Tag è un tipo di variabile che non posso ricreare da zero, credo. Infatti ha alcuni metodi che permettono di salvare un id3 tag su un file mp3. Tant'è che ho dovuto aggiungere questa libreria come dll. Se io faccio questa cosa, che hai detto tu, potrò ancora usufruire di questi metodi per salvare e leggere i tag mp3?
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 21:20   #16
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
questa opzione la scarterei subito
Guarda che non era una proposta
Era un tentativo, in assenza di altri dati, di trovare il problema.
Non "ti propongo di sollevare un'eccezione", ma bensi' "facendo cosi', se bla bla, allora ti ritrovi a sollevare un'eccezione"
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2010, 22:10   #17
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
Scusa è che sono ignorante... TagLib.Tag è un tipo di variabile che non posso ricreare da zero, credo. Infatti ha alcuni metodi che permettono di salvare un id3 tag su un file mp3. Tant'è che ho dovuto aggiungere questa libreria come dll. Se io faccio questa cosa, che hai detto tu, potrò ancora usufruire di questi metodi per salvare e leggere i tag mp3?
Scusa ma hai letto la documentazione della libreria?
Ti sei documentato su come funziona e nel caso specifico di come si usa questa classe TagLib.Tag?
Se non lo sai te che conosci la libreria come pretendi che possiamo saperlo noi solo dal nome di una sua classe che scopriamo in seguito essere pure astratta?
Non hai nemmeno riportato il nome di questa libreria.

Questo post va avanti senza che tu abbia fornito dettagli utili, ma solo facendo domande a cui possiamo rispondere solo tirando ad indovinare da quel poco codice che hai postato.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2010, 10:01   #18
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
si avete ragione, solo che io sono molto ignorante e pensavo fosse solo un errore di sintassi..
la libreria è questa: http://developer.novell.com/wiki/index.php/TagLib_Sharp
non pretendo che vi leggiate i sorgenti pertanto userò un ia classe personalizzata..
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2010, 11:11   #19
astorcas
Senior Member
 
L'Avatar di astorcas
 
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
http://developer.novell.com/wiki/ind...harp:_Examples

Qua c'è un esempio di come usare 'sta liberira
astorcas è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2010, 06:34   #20
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
Ok grazie, ora parto per le vacanze se avrò ancora problemi vi farò sapere
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
La Camera USA presenta il conto: i data ...
Non solo EV, ma anche IA: Panasonic inau...
iPhone Duo, il debutto del pieghevole di...
Atlas 960E SuperPoD, la risposta di Huaw...
IA militare e nucleare: esperti USA e ci...
Dieci mini-reattori nucleari in Europa d...
CONTROL Resonant su PC: Path Tracing, Ra...
ColorOS 17 arriva su circa 90 dispositiv...
GTA VI, il multiplayer potrebbe debuttar...
Aggiornamento KB5002914 rompe Excel: ecc...
Processo Huawei a Brooklyn: l'FBI mostra...
WhatsApp introduce nuovi temi per le cha...
NVIDIA, Google e Emerald AI uniscono le ...
iPhone 18 Pro Max, il test sulla vapor c...
Fine estate in giardino: le proposte sco...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v