Geeignete Argumente für Formatierungsmethoden angeben

     TypeName

ProvideCorrectArgumentsToFormattingMethods

CheckId

CA2241

Kategorie

Microsoft.Usage

Unterbrechende Änderung

NonBreaking

Ursache

Das format-Argument, das an System.String.Format übergeben wird, enthält keine Formatelemente, die den einzelnen Objektargumenten entsprechen, oder umgekehrt.

Regelbeschreibung

Die Argumente der Format-Methode bestehen aus einer Formatzeichenfolge, auf die mehrere System.Object-Instanzen folgen. Die Formatzeichenfolge besteht aus Text und eingebetteten Formatelementen der Form {Index[,Ausrichtung][:formatZeichenfolge]}. "Index" ist eine nullbasierte ganze Zahl, die angibt, welches der Objekte zu formatieren ist. Wenn es für ein Objekt in der Formatzeichenfolge keinen entsprechenden Index gibt, wird das Objekt ignoriert. Wenn das durch "Index" angegebene Objekt nicht existiert, wird zur Laufzeit eine System.FormatException ausgelöst.

Behandlung von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, geben Sie für jedes Objektargument ein Formatelement an, und geben Sie für jedes Formatelement ein Objektargument an.

Warnungsausschluss

Schließen Sie keine Warnung dieser Regel aus.

Beispiel

Im folgenden Beispiel werden zwei Verstöße gegen diese Regel veranschaulicht.

Imports System

Namespace UsageLibrary

   Class CallsStringFormat

      Sub CallFormat()

         Dim file As String = "file name"
         Dim errors As Integer = 13

         ' Violates the rule.
         Console.WriteLine(String.Format("{0}", file, errors))

         Console.WriteLine(String.Format("{0}: {1}", file, errors))

         ' Violates the rule and generates a FormatException at runtime.
         Console.WriteLine(String.Format("{0}: {1}, {2}", file, errors))

      End Sub

   End Class

End Namespace
using System;

namespace UsageLibrary
{
   class CallsStringFormat
   {
      void CallFormat()
      {
         string file = "file name";
         int errors = 13;

         // Violates the rule.
         Console.WriteLine(string.Format("{0}", file, errors));

         Console.WriteLine(string.Format("{0}: {1}", file, errors));

         // Violates the rule and generates a FormatException at runtime.
         Console.WriteLine(string.Format("{0}: {1}, {2}", file, errors));
      }
   }
}