Ok, so this may be a bit of a silly question, and there's certainly the obvious answer, but I was curious if I've missed any subtleties here.

Is there any difference in terms of visibility/usability between a `public` member declared in an `internal` class and an `internal` member declared in an `internal` class?

i.e. between

```
internal class Foo
{
    public void Bar()
    {
    }
}

```

and

```
internal class Foo
{
    internal void Bar()
    {
    }
}

```

If you declared the method as `public` and also `virtual`, and then overrode it in a derived class that is `public`, the reason for using this modifier is clear. However, is this the only situation... am I missing something else?