Question: Let's say I have,

```
public class A
{
    public static void MyAMethod()
    {
    }

    public class B
    {

    }        
}

public class C : A.B
{
    public void MyCMethod()
    {
        MyAMethod();// I need to call this
    }
}

```

Now I need to call MyAMethod from class C.

**Edit**: In my situation class A is unavailable. So, I cannot use A.MyAMethod.

Answer: 
Simply do

```
public class C : A.B
{
    public void MyCMethod()
    {
        A.MyAMethod();// I need to call this
    }
}

```

As the method is static you can call it from anywhere through class A
You can't call `MyAMethod()` that way directly cause it doesn't belong to `class B` and you are inheriting class B; instead it's a static member of `class A` and Hence you have to qualify it before calling `A.MyAMethod();`

If you would have inherited `class A` instead then your code would do fine cause class C will inherit the method as well.

OR

Change your code to accomodate what you want like

```
public class A
    {
        public static void method()
        {
            Console.WriteLine("method in base class");  
        }
    public class B
    {
        public void bmethod()
        {
            A.method(); 
        }
    }
}

public class C : A.B
{
    public void cmethod()
    {
        bmethod(); 
    }
}

```