共用方式為


CA1048:不要在密封類型中宣告 virtual 成員

型別名稱

DoNotDeclareVirtualMembersInSealedTypes

CheckId

CA1048

分類

Microsoft.Design

中斷變更

中斷

原因

public 型別為密封的,並宣告為 virtual (在 Visual Basic 中則為 Overridable) 且不是最終的方法。這項規則不會報告委派型別 (Delegate Type) 的違規,這些型別必須遵循這個模式。

規則描述

型別會將方法宣告為 virtual,讓繼承型別可以覆寫 virtual 方法的實作。根據定義,您無法繼承自密封型別,因此使得密封型別上的 virtual 方法失去意義。

Visual Basic .NET 和 C# 編譯器 (Compiler) 不允許型別違反這項規則。

如何修正違規

若要修正此規則的違規情形,請讓方法成為非虛擬或讓型別成為可繼承的。

隱藏警告的時機

請勿隱藏此規則的警告。使型別保持它的目前狀態可能會造成維護問題,而且不會提供任何好處。

範例

下列範例顯示違反此規則的型別。

using namespace System;

namespace DesignLibrary
{                        
    public ref class SomeType sealed
    {
    public:
        virtual bool VirtualFunction() { return true; }
    };
}