I have three classes. An interface called A, and B and C that implement A. Also B has an instance of C. Methods of A cannot be null. However, C may return null from time to time. Class B checks methods of the C instance and if the return value of C is null it will return self values(values from B).

```
public abstract class A
{
bool abstract method1();
bool abstract method2();
}

public class B:A
{
public C c;
override bool method1()
{
//if c.method1 is not null return c.method1() otherwise do some other functionality
}
}

public class C:A
{
?
}

```

I don't want to throw exceptions due to some performance concerns. How can I implement the C class since I can't change the type of the override class to nullable?