المفوضون must يربط إلى وظائف مع consistent الشفافية Comparing the بيانات of الثاني Databases
TypeName |
UseIntegralOrStringArgumentForIndexers |
CheckId |
ca1043 |
Category |
Microsoft.تصميم |
تعطيل تغيير |
فصل |
السبب
يحتوي على نوع عامة أو محمية مفهرس عامة أو محمية يستخدم نوع فهرس خلاف System.Int32، System.Int64، System.Object، أو System.String.
وصف القاعدة
مفهرسات، التي هو، تتم فهرسة الخصائص، يجب استخدام أنواع عدد صحيح أو سلسلة لهذا الفهرس. هذه أنواع وتستخدم عادة لفهرسة بنية البيانات وزيادة مدى الاستفادة المكتبة. استخدام Objectيجب أن يكون نوع مقيد إلى تصميم تلك الحالات الموقع لا يمكن تحديد نوع عدد صحيح أو سلسلة معينة في وقت. إذا تطلب التصميم غير ذلك نوع s للفهرس، reconsider سواء نوع يمثل مخزن بيانات منطقية. إذا كان ذلك لا يمثل مخزن بيانات منطقية، استخدم أسلوب.
كيف إلى الإصلاح انتهاكات
لتصحيح انتهاكا لهذه قاعدة، قم بتغيير فهرس إلى عدد صحيح أو نوع السلسلة، أو استخدام أسلوب بدلاً من فهرس er.
عند إلى منع التحذيرات
منع ظهور تحذير من هذه قاعدة فقط بعد عناية الأخذ بعين الاعتبار الحاجة إلى مفهرس غير قياسي.
مثال
يوضح المثال التالي فهرس er الذي يستخدم Int32فهرس.
Imports System
Namespace DesignLibrary
Public Class Months
Private month() As String = {"Jan", "Feb", "..."}
Default ReadOnly Property Item(index As Integer) As String
Get
Return month(index)
End Get
End Property
End Class
End Namespace
using System;
namespace DesignLibrary
{
public class Months
{
string[] month = new string[] {"Jan", "Feb", "..."};
public string this[int index]
{
get
{
return month[index];
}
}
}
}
using namespace System;
namespace DesignLibrary
{
public ref class Months
{
array<String^>^ month;
public:
property String^ default[int]
{
String^ get(int index)
{
return month[index];
}
void set(int index, String^ value)
{
month[index] = value;
}
}
Months()
{
month = gcnew array<String^>(12);
month[0] = "Jan";
month[1] = "Feb";
//...;
}
};
}