Mai mult
Ce inseamna "Obiect de referință nu setat la o instanță a unui obiect" înseamnă?
Am primit această eroare și am'm nu sunt sigur ce înseamnă asta?
Obiectul de referință nu setat la o instanță a unui obiect.
180
8
Variabile în .NET sunt fie tipuri de referință sau tipuri de valoare. Tipuri de valoare sunt primitive, cum ar fi integer și boolean sau structuri (și pot fi identificate deoarece au moștenit de la Sistem.ValueType). Variabile booleene, atunci când sunt declarate, au o valoare implicită:
Tipuri de referință, atunci când sunt declarate, nu au o valoare implicită:
Dacă încercați să accesați un membru de o instanță de clasă folosind o referință nulă atunci veți obține o Sistem.NullReferenceException. Care este la fel ca Obiectul de referință nu setat la o instanță a unui obiect.
Următorul cod este un mod simplu de a reproduce acest lucru:
Aceasta este o eroare foarte frecvente și pot apărea din cauza a tot felul de motive. Cauza rădăcină într-adevăr depinde de scenariu specific care le'am întâlnit.
Dacă sunteți folosind un API sau invocarea de metode care pot întoarce null atunci's important să se ocupe de acest lucru grațios. Principala metoda de mai sus poate fi modificat în așa fel încât NullReferenceException nu ar trebui să fie văzut de un utilizator:
Toate cele de mai sus doar indicii .NET Tip Fundamentele, pentru informații suplimentare, am'd recomanda fie ridicarea CLR prin intermediul C# sau citind aceasta articolul MSDN de același autor - Jeffrey Richter. Verifica, de asemenea, mult mai complex, exemplu de atunci când vă puteți întâlni o NullReferenceException.
Unele echipe folosind Resharper face uz de JetBrains atribute pentru a adnota cod pentru a evidenția unde null (nu) era de așteptat.
O altă modalitate ușoară de a obține acest lucru:
Într-un cuvânt înseamnă.. sunteți încercarea de a accesa un obiect fără instantierea ea.. s-ar putea nevoie pentru a utiliza "noi" cuvinte cheie pentru a instantia întâi eu.e de a crea o instanță a acesteia.
De exemplu, pentru:
Nu pentru a fi greu de cap, dar asta înseamnă exact ceea ce spune. Unul dintre obiect trimiteri este NUL. Te'll vedea acest lucru atunci când încercați și accesul proprietate sau metodă de NUL'd obiect.
Înseamnă că a făcut ceva de genul asta.
Și fără face
dacă(myObject!=null)
, du-te face myObject.Metoda();`Cele mai multe ori, atunci când încercați să assing valoare în obiect, iar dacă valoarea este null, atunci acest tip de excepție apar. Vă rugăm să verificați acest link.
de dragul de auto-învățare, puteți pune o condiție. ca
exact ceea ce spune, vă sunt încercarea de a utiliza un obiect null dacă era să fie în mod corespunzător referit obiect.
Dacă am clasa:
și apoi am făcut:
Cea de-a doua linie aruncă această excepție deoarece continuăm am'm a apela o metoda pe o tip de referință obiect care se
nul
(I. e. nu a fost instanțiată de asteptaremyClass = new MyClass()
)