NullReferenceException Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Null nesne başvurusunun başvurulma girişimi olduğunda oluşan özel durum.
public ref class NullReferenceException : Exception
public ref class NullReferenceException : SystemException
public class NullReferenceException : Exception
public class NullReferenceException : SystemException
[System.Serializable]
public class NullReferenceException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class NullReferenceException : SystemException
type NullReferenceException = class
inherit Exception
type NullReferenceException = class
inherit SystemException
[<System.Serializable>]
type NullReferenceException = class
inherit SystemException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type NullReferenceException = class
inherit SystemException
Public Class NullReferenceException
Inherits Exception
Public Class NullReferenceException
Inherits SystemException
- Devralma
- Devralma
- Öznitelikler
Açıklamalar
NullReferenceException değeri null
olan bir türdeki üyeye erişmeye çalıştığınızda bir özel durum oluşur. Özel NullReferenceException durum genellikle geliştirici hatasını yansıtır ve aşağıdaki senaryolarda oluşturulur:
Bir başvuru türünün örneğini oluşturmayı unutmuşsunuz. Aşağıdaki örnekte bildirilir
names
ancak hiçbir zaman örnek oluşturmaz:using System; using System.Collections.Generic; public class Example { public static void Main(string[] args) { int value = Int32.Parse(args[0]); List<String> names; if (value > 0) names = new List<String>(); names.Add("Major Major Major"); } } // Compilation displays a warning like the following: // Example1.cs(10) : warning BC42104: Variable //names// is used before it // has been assigned a value. A null reference exception could result // at runtime. // // names.Add("Major Major Major") // ~~~~~ // The example displays output like the following output: // Unhandled Exception: System.NullReferenceException: Object reference // not set to an instance of an object. // at Example.Main()
open System [<EntryPoint>] let main args = let value = Int32.Parse args[0] // Set names to null, don't initialize it. let mutable names = Unchecked.defaultof<ResizeArray<string>> if value > 0 then names <- ResizeArray() names.Add "Major Major Major" 0 // Compilation does not display a warning as this is an extremely rare occurance in F#. // Creating a value without initalizing either requires using 'null' (not possible // on types defined in F# without [<AllowNullLiteral>]) or Unchecked.defaultof. // // The example displays output like the following output: // Unhandled Exception: System.NullReferenceException: Object reference // not set to an instance of an object. // at Example.main()
Imports System.Collections.Generic Module Example Public Sub Main() Dim names As List(Of String) names.Add("Major Major Major") End Sub End Module ' Compilation displays a warning like the following: ' Example1.vb(10) : warning BC42104: Variable 'names' is used before it ' has been assigned a value. A null reference exception could result ' at runtime. ' ' names.Add("Major Major Major") ' ~~~~~ ' The example displays output like the following output: ' Unhandled Exception: System.NullReferenceException: Object reference ' not set to an instance of an object. ' at Example.Main()
Bazı derleyiciler bu kodu derlerken bir uyarı yayınlar. Diğerleri hata verdi ve derleme başarısız oldu. Bu sorunu gidermek için, değerinin artık
null
olmaması için nesnesinin örneğini açın. Aşağıdaki örnek bunu bir türün sınıf oluşturucusunu çağırarak yapar.using System; using System.Collections.Generic; public class Example { public static void Main() { List<String> names = new List<String>(); names.Add("Major Major Major"); } }
let names = ResizeArray() names.Add "Major Major Major"
Imports System.Collections.Generic Module Example Public Sub Main() Dim names As New List(Of String)() names.Add("Major Major Major") End Sub End Module
Bir diziyi başlatmadan önce boyutlandırmayı unutmuşsunuzdur. Aşağıdaki örnekte,
values
bir tamsayı dizisi olarak bildirilir, ancak içerdiği öğelerin sayısı hiçbir zaman belirtilmez. Bu nedenle, değerlerini başlatma girişimi bir NullReferenceException özel durum oluşturdu.using System; public class Example { public static void Main() { int[] values = null; for (int ctr = 0; ctr <= 9; ctr++) values[ctr] = ctr * 2; foreach (var value in values) Console.WriteLine(value); } } // The example displays the following output: // Unhandled Exception: // System.NullReferenceException: Object reference not set to an instance of an object. // at Example.Main()
let values: int[] = null for i = 0 to 9 do values[i] <- i * 2 for value in values do printfn $"{value}" // The example displays the following output: // Unhandled Exception: // System.NullReferenceException: Object reference not set to an instance of an object. // at <StartupCode$fs>.main()
Module Example Public Sub Main() Dim values() As Integer For ctr As Integer = 0 To 9 values(ctr) = ctr * 2 Next For Each value In values Console.WriteLine(value) Next End Sub End Module ' The example displays the following output: ' Unhandled Exception: ' System.NullReferenceException: Object reference not set to an instance of an object. ' at Example.Main()
Aşağıdaki örnekte olduğu gibi, diziyi başlatmadan önce dizideki öğelerin sayısını bildirerek özel durumu ortadan kaldırabilirsiniz.
using System; public class Example { public static void Main() { int[] values = new int[10]; for (int ctr = 0; ctr <= 9; ctr++) values[ctr] = ctr * 2; foreach (var value in values) Console.WriteLine(value); } } // The example displays the following output: // 0 // 2 // 4 // 6 // 8 // 10 // 12 // 14 // 16 // 18
let values = Array.zeroCreate<int> 10 for i = 0 to 9 do values[i] <- i * 2 for value in values do printfn $"{value}" // The example displays the following output: // 0 // 2 // 4 // 6 // 8 // 10 // 12 // 14 // 16 // 18
Module Example Public Sub Main() Dim values(9) As Integer For ctr As Integer = 0 To 9 values(ctr) = ctr * 2 Next For Each value In values Console.WriteLine(value) Next End Sub End Module ' The example displays the following output: ' 0 ' 2 ' 4 ' 6 ' 8 ' 10 ' 12 ' 14 ' 16 ' 18
Dizileri bildirme ve başlatma hakkında daha fazla bilgi için bkz. Diziler ve Diziler.
Bir yöntemden null dönüş değeri alırsınız ve sonra döndürülen türdeki bir yöntemi çağırırsınız. Bu bazen bir belge hatasının sonucudur; belgelerinde bir yöntem çağrısının döndürebileceğine
null
dikkat edilemez. Diğer durumlarda, kodunuz hatalı bir şekilde yöntemin her zaman null olmayan bir değer döndüreceğini varsayar.Aşağıdaki örnekteki kod, yönteminin Array.Find her zaman alanı bir arama dizesiyle
FirstName
eşleşen bir nesnesi döndürdüğünüPerson
varsayar. Eşleşme olmadığından çalışma zamanı bir NullReferenceException özel durum oluşturur.using System; public class Example { public static void Main() { Person[] persons = Person.AddRange( new String[] { "Abigail", "Abra", "Abraham", "Adrian", "Ariella", "Arnold", "Aston", "Astor" } ); String nameToFind = "Robert"; Person found = Array.Find(persons, p => p.FirstName == nameToFind); Console.WriteLine(found.FirstName); } } public class Person { public static Person[] AddRange(String[] firstNames) { Person[] p = new Person[firstNames.Length]; for (int ctr = 0; ctr < firstNames.Length; ctr++) p[ctr] = new Person(firstNames[ctr]); return p; } public Person(String firstName) { this.FirstName = firstName; } public String FirstName; } // The example displays the following output: // Unhandled Exception: System.NullReferenceException: // Object reference not set to an instance of an object. // at Example.Main()
open System type Person(firstName) = member _.FirstName = firstName static member AddRange(firstNames) = Array.map Person firstNames let persons = [| "Abigail"; "Abra"; "Abraham"; "Adrian" "Ariella"; "Arnold"; "Aston"; "Astor" |] |> Person.AddRange let nameToFind = "Robert" let found = Array.Find(persons, fun p -> p.FirstName = nameToFind) printfn $"{found.FirstName}" // The example displays the following output: // Unhandled Exception: System.NullReferenceException: // Object reference not set to an instance of an object. // at <StartupCode$fs>.main()
Module Example Public Sub Main() Dim persons() As Person = Person.AddRange( { "Abigail", "Abra", "Abraham", "Adrian", "Ariella", "Arnold", "Aston", "Astor" } ) Dim nameToFind As String = "Robert" Dim found As Person = Array.Find(persons, Function(p) p.FirstName = nameToFind) Console.WriteLine(found.FirstName) End Sub End Module Public Class Person Public Shared Function AddRange(firstNames() As String) As Person() Dim p(firstNames.Length - 1) As Person For ctr As Integer = 0 To firstNames.Length - 1 p(ctr) = New Person(firstNames(ctr)) Next Return p End Function Public Sub New(firstName As String) Me.FirstName = firstName End Sub Public FirstName As String End Class ' The example displays the following output: ' Unhandled Exception: System.NullReferenceException: ' Object reference not set to an instance of an object. ' at Example.Main()
Bu sorunu çözmek için aşağıdaki örnekte olduğu gibi, herhangi bir üyesini çağırmadan önce olmadığından
null
emin olmak için yöntemin dönüş değerini test edin.using System; public class Example { public static void Main() { Person[] persons = Person.AddRange( new String[] { "Abigail", "Abra", "Abraham", "Adrian", "Ariella", "Arnold", "Aston", "Astor" } ); String nameToFind = "Robert"; Person found = Array.Find(persons, p => p.FirstName == nameToFind); if (found != null) Console.WriteLine(found.FirstName); else Console.WriteLine("{0} not found.", nameToFind); } } public class Person { public static Person[] AddRange(String[] firstNames) { Person[] p = new Person[firstNames.Length]; for (int ctr = 0; ctr < firstNames.Length; ctr++) p[ctr] = new Person(firstNames[ctr]); return p; } public Person(String firstName) { this.FirstName = firstName; } public String FirstName; } // The example displays the following output: // Robert not found
open System [<AllowNullLiteral>] type Person(firstName) = member _.FirstName = firstName static member AddRange(firstNames) = Array.map Person firstNames let persons = [| "Abigail"; "Abra"; "Abraham"; "Adrian" "Ariella"; "Arnold"; "Aston"; "Astor" |] |> Person.AddRange let nameToFind = "Robert" let found = Array.Find(persons, fun p -> p.FirstName = nameToFind) if found <> null then printfn $"{found.FirstName}" else printfn $"{nameToFind} not found." // Using F#'s Array.tryFind function // This does not require a null check or [<AllowNullLiteral>] let found2 = persons |> Array.tryFind (fun p -> p.FirstName = nameToFind) match found2 with | Some firstName -> printfn $"{firstName}" | None -> printfn $"{nameToFind} not found." // The example displays the following output: // Robert not found. // Robert not found.
Module Example Public Sub Main() Dim persons() As Person = Person.AddRange( { "Abigail", "Abra", "Abraham", "Adrian", "Ariella", "Arnold", "Aston", "Astor" } ) Dim nameToFind As String = "Robert" Dim found As Person = Array.Find(persons, Function(p) p.FirstName = nameToFind) If found IsNot Nothing Then Console.WriteLine(found.FirstName) Else Console.WriteLine("{0} not found.", nameToFind) End If End Sub End Module Public Class Person Public Shared Function AddRange(firstNames() As String) As Person() Dim p(firstNames.Length - 1) As Person For ctr As Integer = 0 To firstNames.Length - 1 p(ctr) = New Person(firstNames(ctr)) Next Return p End Function Public Sub New(firstName As String) Me.FirstName = firstName End Sub Public FirstName As String End Class ' The example displays the following output: ' Robert not found
Bir değeri almak için bir ifade kullanıyorsunuz (örneğin, yöntem veya özellik listesini birbirine zincirliyorsunuz) ve değerin
null
olup olmadığını denetleseniz de çalışma zamanı yine de bir NullReferenceException özel durum oluşturur. Bu durum, ifadedeki ara değerlerden birinin döndürdüğünull
için oluşur. Sonuç olarak, içinnull
testiniz hiçbir zaman değerlendirilmez.Aşağıdaki örnek, nesneler tarafından
Page
sunulan web sayfaları hakkındaki bilgileri önbelleğe alan birPages
nesneyi tanımlar. yöntemi,Example.Main
geçerli web sayfasının null olmayan bir başlığı olup olmadığını denetler ve varsa başlığı görüntüler. Ancak bu denetime rağmen yöntemi bir NullReferenceException özel durum oluşturur.using System; public class Example { public static void Main() { var pages = new Pages(); if (! String.IsNullOrEmpty(pages.CurrentPage.Title)) { String title = pages.CurrentPage.Title; Console.WriteLine("Current title: '{0}'", title); } } } public class Pages { Page[] page = new Page[10]; int ctr = 0; public Page CurrentPage { get { return page[ctr]; } set { // Move all the page objects down to accommodate the new one. if (ctr > page.GetUpperBound(0)) { for (int ndx = 1; ndx <= page.GetUpperBound(0); ndx++) page[ndx - 1] = page[ndx]; } page[ctr] = value; if (ctr < page.GetUpperBound(0)) ctr++; } } public Page PreviousPage { get { if (ctr == 0) { if (page[0] == null) return null; else return page[0]; } else { ctr--; return page[ctr + 1]; } } } } public class Page { public Uri URL; public String Title; } // The example displays the following output: // Unhandled Exception: // System.NullReferenceException: Object reference not set to an instance of an object. // at Example.Main()
open System type Page() = [<DefaultValue>] val mutable public URL: Uri [<DefaultValue>] val mutable public Title: string type Pages() = let pages = Array.zeroCreate<Page> 10 let mutable i = 0 member _.CurrentPage with get () = pages[i] and set (value) = // Move all the page objects down to accommodate the new one. if i > pages.GetUpperBound 0 then for ndx = 1 to pages.GetUpperBound 0 do pages[ndx - 1] <- pages[ndx] pages[i] <- value if i < pages.GetUpperBound 0 then i <- i + 1 member _.PreviousPage = if i = 0 then if box pages[0] = null then Unchecked.defaultof<Page> else pages[0] else i <- i - 1 pages[i + 1] let pages = Pages() if String.IsNullOrEmpty pages.CurrentPage.Title |> not then let title = pages.CurrentPage.Title printfn $"Current title: '{title}'" // The example displays the following output: // Unhandled Exception: // System.NullReferenceException: Object reference not set to an instance of an object. // at <StartupCode$fs>.main()
Module Example Public Sub Main() Dim pages As New Pages() Dim title As String = pages.CurrentPage.Title End Sub End Module Public Class Pages Dim page(9) As Page Dim ctr As Integer = 0 Public Property CurrentPage As Page Get Return page(ctr) End Get Set ' Move all the page objects down to accommodate the new one. If ctr > page.GetUpperBound(0) Then For ndx As Integer = 1 To page.GetUpperBound(0) page(ndx - 1) = page(ndx) Next End If page(ctr) = value If ctr < page.GetUpperBound(0) Then ctr += 1 End Set End Property Public ReadOnly Property PreviousPage As Page Get If ctr = 0 Then If page(0) Is Nothing Then Return Nothing Else Return page(0) End If Else ctr -= 1 Return page(ctr + 1) End If End Get End Property End Class Public Class Page Public URL As Uri Public Title As String End Class ' The example displays the following output: ' Unhandled Exception: ' System.NullReferenceException: Object reference not set to an instance of an object. ' at Example.Main()
Önbellekte hiçbir sayfa bilgisi depolanmadıysa döndürdüğünden
pages.CurrentPage
null
özel durum oluşturulur. Bu özel durum, aşağıdaki örnekte olduğu gibi geçerliPage
nesneninCurrentPage
Title
özelliğini almadan önce özelliğin değeri test edilerek düzeltilebilir:using System; public class Example { public static void Main() { var pages = new Pages(); Page current = pages.CurrentPage; if (current != null) { String title = current.Title; Console.WriteLine("Current title: '{0}'", title); } else { Console.WriteLine("There is no page information in the cache."); } } } // The example displays the following output: // There is no page information in the cache.
let pages = Pages() let current = pages.CurrentPage if box current <> null then let title = current.Title printfn $"Current title: '{title}'" else printfn "There is no page information in the cache." // The example displays the following output: // There is no page information in the cache.
Module Example Public Sub Main() Dim pages As New Pages() Dim current As Page = pages.CurrentPage If current IsNot Nothing Then Dim title As String = current.Title Console.WriteLine("Current title: '{0}'", title) Else Console.WriteLine("There is no page information in the cache.") End If End Sub End Module ' The example displays the following output: ' There is no page information in the cache.
Başvuru türlerini içeren bir dizinin öğelerini numaralandırırsınız ve öğelerden birini işleme girişiminiz bir NullReferenceException özel durum oluşturur.
Aşağıdaki örnek bir dize dizisini tanımlar. Deyimi
for
dizideki öğeleri numaralandırır ve dizeyi görüntülemeden önce her dizenin Trim yöntemini çağırır.using System; public class Example { public static void Main() { String[] values = { "one", null, "two" }; for (int ctr = 0; ctr <= values.GetUpperBound(0); ctr++) Console.Write("{0}{1}", values[ctr].Trim(), ctr == values.GetUpperBound(0) ? "" : ", "); Console.WriteLine(); } } // The example displays the following output: // Unhandled Exception: // System.NullReferenceException: Object reference not set to an instance of an object. // at Example.Main()
open System let values = [| "one"; null; "two" |] for i = 0 to values.GetUpperBound 0 do printfn $"""{values[i].Trim()}{if i = values.GetUpperBound 0 then "" else ", "}""" printfn "" // The example displays the following output: // Unhandled Exception: // System.NullReferenceException: Object reference not set to an instance of an object. // at <StartupCode$fs>.main()
Module Example Public Sub Main() Dim values() As String = { "one", Nothing, "two" } For ctr As Integer = 0 To values.GetUpperBound(0) Console.Write("{0}{1}", values(ctr).Trim(), If(ctr = values.GetUpperBound(0), "", ", ")) Next Console.WriteLine() End Sub End Module ' The example displays the following output: ' Unhandled Exception: System.NullReferenceException: ' Object reference not set to an instance of an object. ' at Example.Main()
Dizinin her öğesinin null olmayan bir değer içermesi gerektiğini ve dizi öğesinin değerinin aslında
null
olduğunu varsayarsanız bu özel durum oluşur. Aşağıdaki örnekte gösterildiği gibi, öğenin bu öğenull
üzerinde herhangi bir işlem yapmadan önce olup olmadığını test ederek özel durum ortadan kaldırılabilir.using System; public class Example { public static void Main() { String[] values = { "one", null, "two" }; for (int ctr = 0; ctr <= values.GetUpperBound(0); ctr++) Console.Write("{0}{1}", values[ctr] != null ? values[ctr].Trim() : "", ctr == values.GetUpperBound(0) ? "" : ", "); Console.WriteLine(); } } // The example displays the following output: // one, , two
open System let values = [| "one"; null; "two" |] for i = 0 to values.GetUpperBound 0 do printf $"""{if values[i] <> null then values[i].Trim() else ""}{if i = values.GetUpperBound 0 then "" else ", "}""" Console.WriteLine() // The example displays the following output: // one, , two
Module Example Public Sub Main() Dim values() As String = { "one", Nothing, "two" } For ctr As Integer = 0 To values.GetUpperBound(0) Console.Write("{0}{1}", If(values(ctr) IsNot Nothing, values(ctr).Trim(), ""), If(ctr = values.GetUpperBound(0), "", ", ")) Next Console.WriteLine() End Sub End Module ' The example displays the following output: ' one, , two
Bağımsız NullReferenceException değişkenlerinden birinin üyesine eriştiğinde yöntemi tarafından özel durum oluşturulabilir, ancak bu bağımsız değişken olur
null
.PopulateNames
Aşağıdaki örnekteki yöntemi, satırınanames.Add(arrName);
özel durumu oluşturur.using System; using System.Collections.Generic; public class Example { public static void Main() { List<String> names = GetData(); PopulateNames(names); } private static void PopulateNames(List<String> names) { String[] arrNames = { "Dakota", "Samuel", "Nikita", "Koani", "Saya", "Yiska", "Yumaevsky" }; foreach (var arrName in arrNames) names.Add(arrName); } private static List<String> GetData() { return null; } } // The example displays output like the following: // Unhandled Exception: System.NullReferenceException: Object reference // not set to an instance of an object. // at Example.PopulateNames(List`1 names) // at Example.Main()
let populateNames (names: ResizeArray<string>) = let arrNames = [ "Dakota"; "Samuel"; "Nikita" "Koani"; "Saya"; "Yiska"; "Yumaevsky" ] for arrName in arrNames do names.Add arrName let getData () : ResizeArray<string> = null let names = getData () populateNames names // The example displays output like the following: // Unhandled Exception: System.NullReferenceException: Object reference // not set to an instance of an object. // at Example.PopulateNames(List`1 names) // at <StartupCode$fs>.main()
Imports System.Collections.Generic Module Example Public Sub Main() Dim names As List(Of String) = GetData() PopulateNames(names) End Sub Private Sub PopulateNames(names As List(Of String)) Dim arrNames() As String = { "Dakota", "Samuel", "Nikita", "Koani", "Saya", "Yiska", "Yumaevsky" } For Each arrName In arrNames names.Add(arrName) Next End Sub Private Function GetData() As List(Of String) Return Nothing End Function End Module ' The example displays output like the following: ' Unhandled Exception: System.NullReferenceException: Object reference ' not set to an instance of an object. ' at Example.PopulateNames(List`1 names) ' at Example.Main()
Bu sorunu gidermek için yöntemine geçirilen bağımsız değişkenin olmadığından
null
emin olun veya birtry…catch…finally
blokta oluşan özel durumu işleyin. Daha fazla bilgi için bkz. Özel durumlar.
Aşağıdaki Microsoft ara dili (MSIL) yönergeleri şu şekildedirNullReferenceException: callvirt
, cpblk
, cpobj
, initblk
, ldelem.<type>
, ldelema
, , ldflda
ldfld
, ldlen
ldind.<type>
, stelem.<type>
, stfld
, , stind.<type>
ve throw
unbox
.
NullReferenceException değeri 0x80004003 olan HRESULT COR_E_NULLREFERENCE kullanır.
örneğinin ilk özellik değerlerinin NullReferenceExceptionlistesi için oluşturuculara NullReferenceException bakın.
Yayın kodunda NullReferenceException İşleme
NullReferenceException'dan kaçınmak, oluştuktan sonra işlemekten daha iyidir. Bir özel durumun işlenmesi kodunuzun korunmasını ve anlaşılmasını zorlaştırabilir ve bazen başka hatalar da oluşturabilir. NullReferenceException genellikle kurtarılamaz bir hatadır. Böyle durumlarda, özel durumun uygulamayı durdurmasına izin vermek en iyi alternatif olabilir.
Ancak, hatayı işlemenin yararlı olabileceği birçok durum vardır:
Uygulamanız null olan nesneleri yoksayabilir. Örneğin, uygulamanız veritabanındaki kayıtları alır ve işlerse, null nesnelere neden olan bazı hatalı kayıtları yoksayabilirsiniz. Bozuk verileri günlük dosyasına veya uygulama kullanıcı arabirimine kaydetmek tek yapmanız gereken olabilir.
Özel durumdan kurtarabilirsiniz. Örneğin, başvuru türü döndüren bir web hizmetine yapılan çağrı, bağlantı kaybolursa veya bağlantı zaman aşımına uğrırsa null döndürebilir. Bağlantıyı yeniden kurmaya çalışabilir ve aramayı yeniden deneyebilirsiniz.
Uygulamanızın durumunu geçerli bir duruma geri yükleyebilirsiniz. Örneğin, NullReferenceException oluşturan bir yöntemi çağırmadan önce bilgileri bir veri deposuna kaydetmenizi gerektiren çok adımlı bir görev gerçekleştiriyor olabilirsiniz. Başlatılmamış nesne veri kaydını bozarsa, uygulamayı kapatmadan önce önceki verileri kaldırabilirsiniz.
Özel durumu bildirmek istiyorsunuz. Örneğin, hataya uygulamanızın kullanıcısından gelen bir hata neden olmuşsa, doğru bilgileri sağlamalarına yardımcı olmak için bir ileti oluşturabilirsiniz. Sorunu çözmenize yardımcı olması için hata hakkındaki bilgileri de günlüğe kaydedebilirsiniz. ASP.NET gibi bazı çerçevelerde, uygulamanın hiçbir zaman kilitlenmediğini belirten tüm hataları yakalayan üst düzey bir özel durum işleyicisi vardır; Bu durumda, özel durumun günlüğe kaydedilmesi, bunun gerçekleştiğini bilmenin tek yolu olabilir.
Oluşturucular
NullReferenceException() |
Sınıfının yeni bir örneğini NullReferenceException başlatır ve yeni örneğin özelliğini hatayı açıklayan sistem tarafından sağlanan bir iletiye ayarlar Message . Örneğin, "Nesne örneğinin gerekli olduğu yerde 'null' değeri bulundu." Bu ileti geçerli sistem kültürünü hesaba katıyor. |
NullReferenceException(SerializationInfo, StreamingContext) |
Geçersiz.
NullReferenceException sınıfının yeni bir örneğini serileştirilmiş verilerle başlatır. |
NullReferenceException(String) |
Belirtilen hata iletisiyle sınıfının yeni bir örneğini NullReferenceException başlatır. |
NullReferenceException(String, Exception) |
Sınıfın NullReferenceException yeni bir örneğini belirtilen bir hata iletisiyle ve bu özel durumun nedeni olan iç özel duruma başvuruyla başlatır. |
Özellikler
Data |
Özel durum hakkında kullanıcı tanımlı ek bilgiler sağlayan bir anahtar/değer çifti koleksiyonu alır. (Devralındığı yer: Exception) |
HelpLink |
Bu özel durumla ilişkili yardım dosyasının bağlantısını alır veya ayarlar. (Devralındığı yer: Exception) |
HResult |
Belirli bir özel duruma atanan kodlanmış sayısal bir değer olan HRESULT'u alır veya ayarlar. (Devralındığı yer: Exception) |
InnerException |
Exception Geçerli özel duruma neden olan örneği alır. (Devralındığı yer: Exception) |
Message |
Geçerli özel durumu açıklayan bir ileti alır. (Devralındığı yer: Exception) |
Source |
Hataya neden olan uygulamanın veya nesnenin adını alır veya ayarlar. (Devralındığı yer: Exception) |
StackTrace |
Çağrı yığınındaki anlık çerçevelerin dize gösterimini alır. (Devralındığı yer: Exception) |
TargetSite |
Geçerli özel durumu oluşturan yöntemini alır. (Devralındığı yer: Exception) |
Yöntemler
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetBaseException() |
Türetilmiş bir sınıfta geçersiz kılındığında, sonraki bir veya daha fazla özel durumun kök nedeni olan değerini döndürür Exception . (Devralındığı yer: Exception) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Geçersiz.
Türetilmiş bir sınıfta geçersiz kılındığında, özel durumla ilgili bilgilerle öğesini SerializationInfo ayarlar. (Devralındığı yer: Exception) |
GetType() |
Geçerli örneğin çalışma zamanı türünü alır. (Devralındığı yer: Exception) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli özel durumun dize gösterimini oluşturur ve döndürür. (Devralındığı yer: Exception) |
Ekinlikler
SerializeObjectState |
Geçersiz.
Bir özel durum, özel durum hakkında serileştirilmiş veriler içeren bir özel durum nesnesi oluşturmak üzere seri hale getirildiğinde gerçekleşir. (Devralındığı yer: Exception) |