На практике, методы:
защищены - доступны для унаследованных классов, в противном случае частные.
internal - общедоступны только для классов внутри сборки, в противном случае частные.
protected internal - защищенные внутренние средства или становятся доступными для унаследованных классов и для любых классов внутри сборки.