İngilizce dilinde oku

Aracılığıyla paylaş


ArgumentOutOfRangeException Sınıf

Tanım

Bir bağımsız değişkenin değeri, çağrılan yöntem tarafından tanımlanan izin verilebilen değer aralığının dışında olduğunda oluşan özel durum.

C#
public class ArgumentOutOfRangeException : ArgumentException
C#
[System.Serializable]
public class ArgumentOutOfRangeException : ArgumentException
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArgumentOutOfRangeException : ArgumentException
Devralma
ArgumentOutOfRangeException
Devralma
ArgumentOutOfRangeException
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnek, davet edilen konuk hakkında bilgi içeren bir sınıf tanımlar. Konuk 21 yaşından küçükse bir ArgumentOutOfRangeException özel durum oluşturulur.

C#
using System;
using static System.Console;

public class Program
{
    public static void Main(string[] args)
    {
        try
        {
            var guest1 = new Guest("Ben", "Miller", 17);
            WriteLine(guest1.GuestInfo);
        }
        catch (ArgumentOutOfRangeException argumentOutOfRangeException)
        {
            WriteLine($"Error: {argumentOutOfRangeException.Message}");
        }
    }
}

class Guest
{
    private const int minimumRequiredAge = 21;

    private string firstName;
    private string lastName;
    private int age;

    public Guest(string firstName, string lastName, int age)
    {
        if (age < minimumRequiredAge)
            throw new ArgumentOutOfRangeException(nameof(age), $"All guests must be {minimumRequiredAge}-years-old or older.");

        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }

    public string GuestInfo => $"{firstName} {lastName}, {age}";
}

Açıklamalar

Bir ArgumentOutOfRangeException yöntem çağrıldığında özel durum oluşturulur ve yönteme geçirilen bağımsız değişkenlerden en az biri değildir null ve bağımsız değişken için beklenen değer kümesinin üyesi olmayan geçersiz bir değer içerir. ParamName özelliği geçersiz bağımsız değişkeni tanımlar ve ActualValue bir değer varsa özelliği geçersiz değeri tanımlar.

Genellikle, ArgumentOutOfRangeException geliştirici hatasından bir sonuç elde edin. Bir try/catch bloktaki özel durumu işlemek yerine, özel durumun nedenini ortadan kaldırmanız veya bağımsız değişken, özel durumu oluşturan yönteme geçirilmeden önce kullanıcı tarafından bir yöntem çağrısı veya girişi tarafından döndürülürse, bağımsız değişkenleri yönteme geçirmeden önce doğrulamanız gerekir.

ArgumentOutOfRangeException tarafından yaygın olarak kullanılır:

Özel durumun oluşturulduğu koşullar ArgumentOutOfRangeException şunlardır:

  • Bir koleksiyonun üyesini dizin numarasına göre alırsınız ve dizin numarası geçersizdir.

    Bu, bir ArgumentOutOfRangeException özel durumun en yaygın nedenidir. Dizin numarası genellikle dört nedenden biri nedeniyle geçersizdir:

    1. Koleksiyonun üyesi yok ve kodunuz üye olduğunu varsayar. Aşağıdaki örnek, öğe içermeyen bir koleksiyonun ilk öğesini almayı dener:

      C#
      using System;
      using System.Collections.Generic;
      
      public class Example4
      {
         public static void Main()
         {
            var list = new List<string>();
            Console.WriteLine("Number of items: {0}", list.Count);
            try {
               Console.WriteLine("The first item: '{0}'", list[0]);
            }
            catch (ArgumentOutOfRangeException e) {
               Console.WriteLine(e.Message);
            }
         }
      }
      // The example displays the following output:
      //   Number of items: 0
      //   Index was out of range. Must be non-negative and less than the size of the collection.
      //   Parameter name: index
      

      Özel durumu önlemek için, aşağıdaki kod parçasında olduğu gibi herhangi bir üyeyi almaya çalışmadan önce koleksiyonun Count özelliğinin sıfırdan büyük olup olmadığını denetleyin.

      C#
      if (list.Count > 0)
         Console.WriteLine("The first item: '{0}'", list[0]);
      
    2. Bazı durumlarda, bu amaç için var olan gibi yöntemini çağırmak yerine var olmayan bir dizin kullanarak bir koleksiyona üye eklemeye çalıştığınızdan özel Adddurum oluşabilir. Aşağıdaki örnek, yöntemini çağırmak yerine var olmayan bir dizin kullanarak bir koleksiyona öğe eklemeye List<T>.Add çalışır.

      C#
      using System;
      using System.Collections.Generic;
      
      public class Example13
      {
         public static void Main()
         {
            var numbers = new List<int>();
            numbers.AddRange( new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 20 } );
      
            var squares = new List<int>();
            for (int ctr = 0; ctr < numbers.Count; ctr++)
               squares[ctr] = (int) Math.Pow(numbers[ctr], 2);
         }
      }
      // The example displays the following output:
      //    Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
      //    Parameter name: index
      //       at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
      //       at Example.Main()
      

      Aşağıdaki kod parçası bu hatayı düzeltmektedir:

      C#
      var squares = new List<int>();
      for (int ctr = 0; ctr < numbers.Count; ctr++)
         squares.Add((int) Math.Pow(numbers[ctr], 2));
      
    3. Dizini negatif olan bir öğeyi almaya çalışıyorsunuz. Bu durum genellikle belirli bir öğenin dizinini bir koleksiyonda aradığınız ve yanlışlıkla aramanın başarılı olduğunu varsaydığınız için oluşur. Aşağıdaki örnekte, yöntemine List<T>.FindIndex(Predicate<T>) yapılan çağrı "Z" değerine eşit bir dizeyi bulamadığından -1 döndürür. Ancak bu geçersiz bir dizin değeridir.

      C#
      using System;
      using System.Collections.Generic;
      
      public class Example
      {
         public static void Main()
         {
            var list = new List<string>();
            list.AddRange( new String[] { "A", "B", "C" } );
            // Get the index of the element whose value is "Z".
            int index = list.FindIndex((new StringSearcher("Z")).FindEquals);
            try {
               Console.WriteLine("Index {0} contains '{1}'", index, list[index]);
            }
            catch (ArgumentOutOfRangeException e) {
               Console.WriteLine(e.Message);
            }
         }
      }
      
      internal class StringSearcher
      {
         string value;
      
         public StringSearcher(string value)
         {
            this.value = value;
         }
      
         public bool FindEquals(string s)
         {
            return s.Equals(value, StringComparison.InvariantCulture);
         }
      }
      // The example displays the following output:
      //   Index was out of range. Must be non-negative and less than the size of the collection.
      //   Parameter name: index
      

      Özel durumu önlemek için, aşağıdaki kod parçasında olduğu gibi öğeyi koleksiyondan almayı denemeden önce döndürülen dizinin sıfırdan büyük veya sıfıra eşit olduğundan emin olarak aramanın başarılı olup olmadığını denetleyin.

      C#
      // Get the index of the element whose value is "Z".
      int index = list.FindIndex((new StringSearcher("Z")).FindEquals);
      if (index >= 0)
         Console.WriteLine("'Z' is found at index {0}", list[index]);
      
    4. Aşağıdaki örnekte gösterildiği gibi dizini koleksiyonun Count özelliğinin değerine eşit olan bir öğeyi almaya çalışıyorsunuz.

      C#
      using System;
      using System.Collections.Generic;
      
      public class Example8
      {
         public static void Main()
         {
            var list = new List<string>();
            list.AddRange( new String[] { "A", "B", "C" } );
            try {
               // Display the elements in the list by index.
               for (int ctr = 0; ctr <= list.Count; ctr++)
                  Console.WriteLine("Index {0}: {1}", ctr, list[ctr]);
            }
            catch (ArgumentOutOfRangeException e) {
               Console.WriteLine(e.Message);
            }
         }
      }
      // The example displays the following output:
      //   Index 0: A
      //   Index 1: B
      //   Index 2: C
      //   Index was out of range. Must be non-negative and less than the size of the collection.
      //   Parameter name: index
      

      .NET'teki koleksiyonlar sıfır tabanlı dizin oluşturma kullandığından, koleksiyonun ilk öğesi dizin 0'da ve son öğe dizin Count - 1'dedir. Aşağıdaki kodda olduğu gibi dizin Count - 1'deki son öğeye erişdiğinizden emin olarak hatayı ortadan kaldırabilirsiniz.

      C#
      // Display the elements in the list by index.
      for (int ctr = 0; ctr < list.Count; ctr++)
         Console.WriteLine("Index {0}: {1}", ctr, list[ctr]);
      
  • Dize işleme yöntemini çağırarak bir dize işlemi gerçekleştirmeye çalışıyorsunuz ve başlangıç dizini dizede yok.

    İşlemin başlangıç dizinini belirtmenize olanak sağlayan , String.CompareOrdinal, String.IndexOfIndexOfAny, , String.Insert, String.LastIndexOf, , , RemoveString.LastIndexOfAnyString.Substring veya gibi String.Compareyöntemlerin aşırı yüklenmesi, dizinin dize içinde geçerli bir konum olmasını gerektirir. Geçerli dizinler 0 String.Length ile - 1 arasında değişir.

    Bu ArgumentOutOfRangeException özel durumun dört yaygın nedeni vardır:

    1. Boş bir dize veya String.Emptyile çalışıyorsunuz. String.Length Özelliği 0 döndürdüğünden, dizine göre işleme girişimi bir ArgumentOutOfRangeException özel durum oluşturur. Aşağıdaki örnek, bir dizenin ilk karakterini döndüren bir GetFirstCharacter yöntemi tanımlar. Dize boşsa, yönteme geçirilen son dize olduğu gibi, yöntem bir ArgumentOutOfRangeException özel durum oluşturur.

      C#
      using System;
      
      public class Example1
      {
          public static void Main()
          {
              String[] words = { "the", "today", "tomorrow", " ", "" };
              foreach (var word in words)
                  Console.WriteLine("First character of '{0}': '{1}'",
                                    word, GetFirstCharacter(word));
          }
      
          private static char GetFirstCharacter(string s)
          {
              return s[0];
          }
      }
      // The example displays the following output:
      //    First character of //the//: //t//
      //    First character of //today//: //t//
      //    First character of //tomorrow//: //t//
      //    First character of // //: // //
      //
      //    Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
      //       at Example.Main()
      

      Dizenin sıfırdan büyük olup olmadığını test ederek veya dizenin String.Length boş veya boş olmadığından null emin olmak için yöntemini çağırarak IsNullOrEmpty özel durumu ortadan kaldırabilirsiniz. Aşağıdaki kod parçası ikincisini yapar. Bu durumda, dize null boşsa veya boşsa yöntemi GetFirstCharacter U+0000 döndürür.

      C#
      static char GetFirstCharacter(string s)
      {
          if (string.IsNullOrEmpty(s))
              return '\u0000';
          else
              return s[0];
      }
      
    2. Bir dizeyi, bu dize içindeki bir alt dizenin konumuna göre işliyor ve alt dizenin gerçekten bulunup bulunmadığını belirleyemediniz.

      Aşağıdaki örnek, iki sözcüklü bir tümceciğin ikinci sözcüğünü ayıklar. Tümcecik yalnızca bir ArgumentOutOfRangeException sözcükden oluşuyorsa ve bu nedenle eklenmiş bir boşluk karakteri içermiyorsa bir özel durum oluşturur. Bunun nedeni, yöntemine yapılan çağrının aramanın String.IndexOf(String) başarısız olduğunu belirtmek için -1 döndürmesi ve bu geçersiz değerin yöntemine String.Substring(Int32) geçirilmesidir.

      C#
      using System;
      
      public class Example17
      {
         public static void Main()
         {
            String[] phrases = { "ocean blue", "concerned citizen",
                                 "runOnPhrase" };
            foreach (var phrase in phrases)
               Console.WriteLine("Second word is {0}", GetSecondWord(phrase));
         }
      
         static string GetSecondWord(string s)
         {
            int pos = s.IndexOf(" ");
            return s.Substring(pos).Trim();
         }
      }
      // The example displays the following output:
      //    Second word is blue
      //    Second word is citizen
      //
      //    Unhandled Exception: System.ArgumentOutOfRangeException: StartIndex cannot be less than zero.
      //    Parameter name: startIndex
      //       at System.String.Substring(Int32 startIndex, Int32 length)
      //       at Example17.GetSecondWord(String s)
      //       at Example17.Main()
      

      Özel durumu ortadan kaldırmak için dize işleme yöntemini çağırmadan önce dize arama yöntemi tarafından döndürülen değeri doğrulayın.

      C#
      using System;
      
      public class Example18
      {
         public static void Main()
         {
            String[] phrases = { "ocean blue", "concerned citizen",
                                 "runOnPhrase" };
            foreach (var phrase in phrases) {
               string word = GetSecondWord(phrase);
               if (! string.IsNullOrEmpty(word))
                  Console.WriteLine("Second word is {0}", word);
            }
         }
      
         static string GetSecondWord(string s)
         {
            int pos = s.IndexOf(" ");
            if (pos >= 0)
               return s.Substring(pos).Trim();
            else
               return string.Empty;
         }
      }
      // The example displays the following output:
      //       Second word is blue
      //       Second word is citizen
      
    3. Geçerli dize aralığının dışında bir alt dize ayıklamayı denediniz.

      Alt dizeleri ayıklayan yöntemlerin tümü, alt dizenin başlangıç konumunu ve dizenin sonuna kadar devam etmeyen alt dizeler için alt dizedeki karakter sayısını belirtmenizi gerektirir. Bunun alt dizedeki son karakterin dizini olmadığını unutmayın.

      ArgumentOutOfRangeException Bu durumda genellikle bir özel durum oluşturulur çünkü alt dizedeki karakter sayısını yanlış hesaplamış olursunuz. Bir alt dizenin başlangıç ve bitiş konumlarını belirlemek için gibi String.IndexOf bir arama yöntemi kullanıyorsanız:

      • tarafından döndürülen String.IndexOf bitiş konumundaki karakter alt dizeye dahil edilecekse, alt dizenin bitiş konumu formül tarafından verilir

        endIndex - startIndex + 1
        
      • tarafından döndürülen String.IndexOf bitiş konumundaki karakter alt dizenin dışında tutulacaksa, alt dizenin bitiş konumu formül tarafından verilir

        endIndex - startIndex
        

        Aşağıdaki örnek, bir FindWords dizedeki String.IndexOfAny(Char[], Int32) boşluk karakterlerini ve noktalama işaretlerini tanımlamak için yöntemini kullanan bir yöntemi tanımlar ve dizede bulunan sözcükleri içeren bir dizi döndürür.

        C#
        using System;
        using System.Collections.Generic;
        
        public class Example19
        {
           public static void Main()
           {
              string sentence = "This is a simple, short sentence.";
              Console.WriteLine("Words in '{0}':", sentence);
              foreach (var word in FindWords(sentence))
                 Console.WriteLine("   '{0}'", word);
           }
        
           static String[] FindWords(string s)
           {
              int start = 0, end = 0;
              Char[] delimiters = { ' ', '.', ',', ';', ':', '(', ')' };
              var words = new List<string>();
        
              while (end >= 0) {
                 end = s.IndexOfAny(delimiters, start);
                 if (end >= 0) {
                    if (end - start > 0)
                       words.Add(s.Substring(start, end - start));
        
                    start = end + 1;
                 }
                 else {
                    if (start < s.Length - 1)
                       words.Add(s.Substring(start));
                 }
              }
              return words.ToArray();
           }
        }
        // The example displays the following output:
        //       Words in 'This is a simple, short sentence.':
        //          'This'
        //          'is'
        //          'a'
        //          'simple'
        //          'short'
        //          'sentence'
        
  • Yalnızca pozitif sayılar ve sıfır gerektiren bir bağımsız değişkeni olan bir yönteme negatif bir sayı geçirdiniz veya yalnızca pozitif sayılar gerektiren bir bağımsız değişkeni olan bir yönteme negatif bir sayı veya sıfır geçirdiniz.

    Örneğin, yöntemi iki Array.CreateInstance(Type, Int32, Int32, Int32) boyutlu bir dizinin her boyutundaki öğe sayısını belirtmenizi gerektirir; her boyut için geçerli değerler 0 Int32.MaxValueile arasında değişebilir. Ancak aşağıdaki örnekteki boyut bağımsız değişkeni negatif bir değere sahip olduğundan, yöntem bir ArgumentOutOfRangeException özel durum oluşturur.

    C#
    using System;
    
    public class Example01
    {
        public static void Main()
        {
            int dimension1 = 10;
            int dimension2 = -1;
            try
            {
                Array arr = Array.CreateInstance(typeof(string),
                                                 dimension1, dimension2);
            }
            catch (ArgumentOutOfRangeException e)
            {
                if (e.ActualValue != null)
                    Console.WriteLine("{0} is an invalid value for {1}: ", e.ActualValue, e.ParamName);
                Console.WriteLine(e.Message);
            }
        }
    }
    // The example displays the following output:
    //     Non-negative number required.
    //     Parameter name: length2
    

    Hatayı düzeltmek için geçersiz bağımsız değişkenin değerinin negatif olmamasını sağlayın. Bunu, aşağıdaki kod parçasının yaptığı gibi geçerli bir değer sağlayarak yapabilirsiniz.

    C#
    int dimension1 = 10;
    int dimension2 = 10;
    Array arr = Array.CreateInstance(typeof(string),
                                     dimension1, dimension2);
    

    Ayrıca girişi doğrulayabilir ve geçersizse bazı eylemler gerçekleştirebilirsiniz. Aşağıdaki kod parçası yöntemini çağırmak yerine bir hata iletisi görüntüler.

    C#
    if (dimension1 < 0 || dimension2 < 0)
    {
        Console.WriteLine("Unable to create the array.");
        Console.WriteLine("Specify non-negative values for the two dimensions.");
    }
    else
    {
        arr = Array.CreateInstance(typeof(string),
                                   dimension1, dimension2);
    }
    
  • Çok iş parçacıklı veya zaman uyumsuz olarak yürütülen ve bir diziyi veya koleksiyonu güncelleştiren görevleri olan bir uygulamada yarış durumu vardır.

    Aşağıdaki örnek, bir List<T> nesne koleksiyonunu Continent doldurmak için bir nesnesi kullanır. Örnek, koleksiyon tam olarak doldurulmadan önce koleksiyondaki yedi öğeyi görüntülemeye çalışırsa bir ArgumentOutOfRangeException oluşturur.

    C#
    using System;
    using System.Collections.Generic;
    using System.Threading;
    
    public class Continent
    {
       public string? Name { get; set; }
       public int Population { get; set; }
       public Decimal Area { get; set; }
    }
    
    public class Example11
    {
       static List<Continent> continents = new List<Continent>();
       static string? s_msg;
    
       public static void Main()
       {
          String[] names = { "Africa", "Antarctica", "Asia",
                             "Australia", "Europe", "North America",
                             "South America" };
          // Populate the list.
          foreach (var name in names) {
             var th = new Thread(PopulateContinents);
             th.Start(name);
          }
          Console.WriteLine(s_msg);
          Console.WriteLine();
    
          // Display the list.
          for (int ctr = 0; ctr < names.Length; ctr++) {
             var continent = continents[ctr];
             Console.WriteLine("{0}: Area: {1}, Population {2}",
                               continent.Name, continent.Population,
                               continent.Area);
          }
       }
    
       private static void PopulateContinents(Object? obj)
       {
          string? name = obj?.ToString();
          s_msg += string.Format("Adding '{0}' to the list.\n", name);
          var continent = new Continent();
          continent.Name = name;
          // Sleep to simulate retrieving remaining data.
          Thread.Sleep(50);
          continents.Add(continent);
       }
    }
    // The example displays output like the following:
    //    Adding //Africa// to the list.
    //    Adding //Antarctica// to the list.
    //    Adding //Asia// to the list.
    //    Adding //Australia// to the list.
    //    Adding //Europe// to the list.
    //    Adding //North America// to the list.
    //    Adding //South America// to the list.
    //
    //
    //
    //    Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
    //    Parameter name: index
    //       at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
    //       at Example.Main()
    

    Bu durumda, birden çok iş parçacığından iki kaynağa erişilir:

    • continents topluluğu. Yöntemi List<T>.Add birden çok iş parçacığından çağrılır. Buna ek olarak, ana veya birincil iş parçacığı, üyelerini yinelediğinde koleksiyonun yedi öğeyle tamamen doldurulduğundan varsayılır.

    • msg Birden çok iş parçacığından birleştirilmiş dize.

    Hatayı düzeltmek için, paylaşılan duruma aşağıdaki gibi iş parçacığı güvenli bir şekilde erişildiğinden emin olun.

    • Uygulamanız bir dizi veya koleksiyon nesnesi kullanıyorsa, ad alanı veya System.Collections.Immutable bant dışı sürüm türleri System.Collections.Concurrent gibi iş parçacığı açısından güvenli bir koleksiyon sınıfı kullanmayı göz önünde bulundurun.

    • Paylaşılan duruma (yani birden çok iş parçacığı tarafından erişilebilen kaynaklara) iş parçacığı açısından güvenli bir şekilde erişildiğinden emin olun; böylece kaynaklara tek seferde yalnızca bir iş parçacığı özel erişime sahip olur. Kaynaklara erişimi eşitlemek için , Interlocked, Monitorve Mutexgibi CountdownEventçok sayıda sınıf kullanılabilir. Daha fazla bilgi için bkz. İş Parçacığı Oluşturma. Ayrıca, C# dilindeki lock deyimi ve Visual Basic'teki SyncLock yapısı aracılığıyla dil desteği sağlanır.

    Aşağıdaki örnek, önceki örnekteki ArgumentOutOfRangeException ve diğer sorunları giderir. Koleksiyona erişimin List<T> iş parçacığı güvenli olduğundan emin olmak için nesnesini bir ConcurrentBag<T> nesneyle değiştirir, uygulama iş parçacığının yalnızca diğer iş parçacıkları yürütüldükten sonra devam etmesini sağlamak için bir CountdownEvent nesnesi kullanır ve bir kerede yalnızca bir iş parçacığının msg değişkene erişebilmesini sağlamak için bir kilit kullanır.

    C#
    using System;
    using System.Collections.Concurrent;
    using System.Threading;
    
    public class ContinentD
    {
       public string? Name { get; set; }
       public int Population { get; set; }
       public Decimal Area { get; set; }
    }
    
    public class Example12
    {
       static ConcurrentBag<ContinentD> ContinentDs = new ConcurrentBag<ContinentD>();
       static CountdownEvent? gate;
       static string msg = string.Empty;
    
       public static void Main()
       {
          String[] names = { "Africa", "Antarctica", "Asia",
                             "Australia", "Europe", "North America",
                             "South America" };
          gate = new CountdownEvent(names.Length);
    
          // Populate the list.
          foreach (var name in names) {
             var th = new Thread(PopulateContinentDs);
             th.Start(name);
          }
    
          // Display the list.
          gate.Wait();
          Console.WriteLine(msg);
          Console.WriteLine();
    
          var arr = ContinentDs.ToArray();
          for (int ctr = 0; ctr < names.Length; ctr++) {
             var ContinentD = arr[ctr];
             Console.WriteLine("{0}: Area: {1}, Population {2}",
                               ContinentD.Name, ContinentD.Population,
                               ContinentD.Area);
          }
       }
    
       private static void PopulateContinentDs(Object? obj)
       {
          string? name = obj?.ToString();
          lock(msg) {
             msg += string.Format("Adding '{0}' to the list.\n", name);
          }
          var ContinentD = new ContinentD();
          ContinentD.Name = name;
          // Sleep to simulate retrieving remaining data.
          Thread.Sleep(25);
          ContinentDs.Add(ContinentD);
          gate?.Signal();
       }
    }
    // The example displays output like the following:
    //       Adding 'Africa' to the list.
    //       Adding 'Antarctica' to the list.
    //       Adding 'Asia' to the list.
    //       Adding 'Australia' to the list.
    //       Adding 'Europe' to the list.
    //       Adding 'North America' to the list.
    //       Adding 'South America' to the list.
    //
    //
    //       Africa: Area: 0, Population 0
    //       Antarctica: Area: 0, Population 0
    //       Asia: Area: 0, Population 0
    //       Australia: Area: 0, Population 0
    //       Europe: Area: 0, Population 0
    //       North America: Area: 0, Population 0
    //       South America: Area: 0, Population 0
    

ArgumentOutOfRangeException değeri 0x80131502 olan HRESULT COR_E_ARGUMENTOUTOFRANGE kullanır.

örneğinin ilk özellik değerlerinin ArgumentOutOfRangeExceptionlistesi için oluşturuculara ArgumentOutOfRangeException bakın.

Oluşturucular

ArgumentOutOfRangeException()

ArgumentOutOfRangeException sınıfının yeni bir örneğini başlatır.

ArgumentOutOfRangeException(SerializationInfo, StreamingContext)
Geçersiz.

ArgumentOutOfRangeException sınıfının yeni bir örneğini serileştirilmiş verilerle başlatır.

ArgumentOutOfRangeException(String)

Bu özel duruma neden olan parametresinin adıyla sınıfının yeni bir örneğini ArgumentOutOfRangeException başlatır.

ArgumentOutOfRangeException(String, Exception)

Belirtilen hata iletisi ve bu özel durumun nedeni olan özel durum ile sınıfının yeni bir örneğini ArgumentOutOfRangeException başlatır.

ArgumentOutOfRangeException(String, Object, String)

Parametre adı, bağımsız değişkenin ArgumentOutOfRangeException değeri ve belirtilen hata iletisiyle sınıfının yeni bir örneğini başlatır.

ArgumentOutOfRangeException(String, String)

Bu özel duruma neden olan parametresinin adı ve belirtilen hata iletisiyle sınıfının yeni bir örneğini ArgumentOutOfRangeException başlatır.

Özellikler

ActualValue

Bu özel duruma neden olan bağımsız değişken değerini alır.

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 değerini alır veya ayarlar.

(Devralındığı yer: Exception)
InnerException

Geçerli özel duruma Exception neden olan örneği alır.

(Devralındığı yer: Exception)
Message

Geçersiz bağımsız değişken değerinin hata iletisini ve dize gösterimini veya yalnızca bağımsız değişken değeri null olduğunda hata iletisini alır.

ParamName

Bu özel duruma neden olan parametrenin adını alır.

(Devralındığı yer: ArgumentException)
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.

SerializationInfo Nesneyi geçersiz bağımsız değişken değeri ve ek özel durum bilgileriyle ayarlar.

GetObjectData(SerializationInfo, StreamingContext)
Geçersiz.

SerializationInfo Nesneyi parametre adı ve ek özel durum bilgileriyle ayarlar.

(Devralındığı yer: ArgumentException)
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)
ThrowIfEqual<T>(T, T, String)

ArgumentOutOfRangeException değerine eşit otherbir if value oluşturur.

ThrowIfGreaterThan<T>(T, T, String)

değerinden büyük otherbir ArgumentOutOfRangeException if value oluşturur.

ThrowIfGreaterThanOrEqual<T>(T, T, String)

değerinden ArgumentOutOfRangeException büyük veya buna eşit otherbir if value oluşturur.

ThrowIfLessThan<T>(T, T, String)

değerinden küçükse otherbir ArgumentOutOfRangeException oluştururvalue.

ThrowIfLessThanOrEqual<T>(T, T, String)

değerinden ArgumentOutOfRangeException küçük veya eşit otherbir if value oluşturur.

ThrowIfNegative<T>(T, String)

Negatif bir ArgumentOutOfRangeException if value oluşturur.

ThrowIfNegativeOrZero<T>(T, String)

Negatif veya sıfır ise bir ArgumentOutOfRangeException eğer value oluşturur.

ThrowIfNotEqual<T>(T, T, String)

değerine eşit otherdeğilse bir valueArgumentOutOfRangeException oluşturur.

ThrowIfZero<T>(T, String)

Sıfır ise bir ArgumentOutOfRangeException eğer value atar.

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)

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Ayrıca bkz.