ca1053: لا ينبغي أنواع حامل ثابت المنشئات
TypeName |
StaticHolderTypesShouldNotHaveConstructors |
CheckId |
ca1053 |
Category |
Microsoft.تصميم |
تعطيل تغيير |
فصل |
السبب
تعريف نوع عام أو متداخلة عامة فقط الأعضاء ثابتون ويحتوي على الدالة الإنشائية افتراضي عام أو محمية.
وصف القاعدة
الدالة الإنشائية غير ضرورية لأن استدعاء الأعضاء ثابتة ولا يتطلب وجود مثيل من النوع. أيضا، لأن نوع لم يكن أعضاء غير ثابت، إنشاء مثيل لا يوفر الوصول إلى أي من الأعضاء نوع's.
كيف إلى الإصلاح انتهاكات
لإصلاح انتهاكا لهذه قاعدة، قم بإزالة الافتراضي الدالة الإنشائية أو جعله خاصة.
ملاحظة
بعض compilers تلقائياً بإنشاء افتراضي عمومي الدالة الإنشائية إذا كان النوع لا بتعريف أية الدالة الإنشائية s. إذا كان ترتيب هو هو الحالة مع نوع الخاص بك، قم بإضافة الدالة الإنشائية افتراضي خاص للتخلص من الانتهاك.
عند إلى منع التحذيرات
لا بمنع تحذير من هذه قاعدة. وجود الدالة الإنشائية تقترح أن النوع ليس نوع ثابت.
مثال
يظهر المثال التالي هو نوع من انتهاك هذه قاعدة. لاحظ أنه هو لا يوجد الدالة الإنشائية افتراضي في تعليمات برمجية المصدر. عند ترتيب هو رمز هو المترجمة إلى تجميع، المحول البرمجي C# يدرج الدالة الإنشائية افتراضي، مما سيؤدي إلى انتهاك th هو قاعدة. إلى تصحيح هذا، التصريح construcإلىr خاصة.
using System;
namespace DesignLibrary
{
public class NoInstancesNeeded
{
// Violates rule: StaticHolderTypesShouldNotHaveConstructors.
// Uncomment the following line to correct the violation.
// private NoInstancesNeeded() {}
public static void Method1() {}
public static void Method2() {}
}
}