Skip to main content

Virtual member cannot be private

In This Article

CodeRush Classic shows the Virtual member cannot be private code issue if a virtual member is marked as private.

#Fix

Increase the member visibility.

#Purpose

Highlights the virtual member declarations, which would cause the virtual or abstract members cannot be private compilation error.

#Example

public class MyClass
{
    private virtual object ProcessData(object data)
    {
        if (Data != null)
            Data = data;
    }
    private object _Data;
    public object Data
    {
        get
        {
            return _Data;
        }
        set
        {
            ProcessData(value);
        }
    }
}

Fix:

public class MyClass
{
    protected virtual object ProcessData(object data)
    {
        if (Data != null)
            Data = data;
    }
    private object _Data;
    public object Data
    {
        get
        {
            return _Data;
        }
        set
        {
            ProcessData(value);
        }
    }
}