public void Stfld2(DerivedDerived bar) { derived = bar;//no warn since we use specific below bar.DerivedDerivedSpecific(); }
public void BarAsGeneralizedArgument(string hash, Derived dbar) { dbar.Foo(); //if bar wasn't used as a Derived argument below it would be eligible DerivedBarCouldNotBeGeneralized(dbar); }
public void Stfld(Derived bar) { derived = bar; }
public void DerivedBarCouldNotBeGeneralized(Derived bar) { bar.Bar(0, string.Empty); }
public int BarAndFooCouldNotBeGeneralized(string foo, Derived bar) { bar.Bar(foo.Length, foo); return(0); }
public void Stsfld(DerivedDerived bar) { sderived = bar; }
//`bar` could be Base public DerivedDerived Constructor(Derived bar) { return(new DerivedDerived(bar)); }
//`bar` could be Base public void GenericAddBar(Derived bar) { List <Base> l = new List <Base>(); l.Add(bar); }
public void BarAndFooCouldBeGeneralized(Derived foo, DerivedDerived bar) { bar.Bar(42, "hash"); foo.Foo(); }
public void FooCouldBeBase(Derived foo) { foo.Foo(); }