c# - Narrowing and widening on class inheritance
<p>I'm studying for the 70-483 exam and  I have doubts about converting types.
I follow a book, at the end of each chapter there are some questions/answer, and with one i'm completly confuse.</p>

<blockquote>
  <p>If the Manager class inherits from the Employee class, and the Employee and Customer classes both inherit from the Person class, then which of the following are narrowing conversions?</p>
  
  <blockquote>
    <p>a.    Converting a Person to a Manager</p>
    
    <p>b.    Converting an Employee to a Manager</p>
    
    <p>c.    Converting an Employee to a Person</p>
    
    <p>d.    Converting a Manager to a Person</p>
    
    <p>e.    Converting a Manager to an Employee</p>
    
    <p>f.    Converting a Person to an Employee</p>
    
    <p>g.    Converting a Customer to an Employee</p>
    
    <p>h.    Converting an Employee to a Customer</p>
  </blockquote>
</blockquote>

<p>the answers are :</p>

<blockquote>
  <blockquote>
    <p>"A, B, F . (In a sense you could technically consider g and h to be considered narrowing conversions, but actually they are just invalid conversions.)"</p>
  </blockquote>
</blockquote>

<p>From what i understand, i thought a,b,f to be widening conversions</p>

<ul>
<li><p>A widening conversion is a conversion where every value of the
original type can be represented in the result type.</p></li>
<li><p>A narrowing conversion is a conversion where some values of the<br>
original type cannot be represented in the result type. </p></li>
</ul>