class MyBase { protected object PropertyOfBase { get; set; } } class MyType : MyBase { void MyMethod(MyBase parameter) { // I am looking for:
There's a good reason you can't do this. Suppose someone writes:
class Other : MyBase { } new MyType().MyMethod(new Other());
If the language allowed what you're asking for, you could violate the assumed invariants of Other by modifying the value of PropertyOfBase.
Other
PropertyOfBase