You can't make "blocks" public or private in C# as you would in C++, you'll have to add the visibility (and implementation) to each member. In C++, you'd normally do;
public:
memberA();
memberB();
private:
memberC();
...and implement your members elsewhere, while in C#, you'd need to do;
public memberA() { ...implement your function here... }
public memberB() { ...implement your function here... }
private memberC() { ...implement your function here... }
As for properties, see them as auto implemented set
and get
methods which you can choose to implement yourself or have the compiler implement them. If you want to implement them yourself, you'll still need the field to store your data in, if you leave it up to the compiler, it will also generate the field.
Inheritance works exactly the same as it would if you put things in the same file (which is probably not even a good idea for bigger C++ projects). Just inherit as usual, as long as you're in the same namespace or have the namespace of the base class imported, you can just inherit seamlessly;
using System.Collections; // Where IEnumerable is defined
public class MyEnumerable : IEnumerable { // Just inherit like it
... // was in the same file.
}