本帖最后由 念念念念_、 于 2013-9-26 12:12 编辑
对于楼主的这个问题,前段时间我正好整理好了笔记,现在分享下:
分别是:
private 私有的 (只能在当前类内部访问)
protected 受保护的(只能在类内部以及所有子类内部访问)
internal 只能在当前程序集内部访问
protected internal 在类内部以及所有子类内部可以访问,也可在当前程序集内访问
public 公共的 (在任何地方都可以访问)
protected与internal没有可比性。protected是在当前类内部写,所有子类都可以访问。而internal是在同一个程序集中可以访问。
假如不再同一个程序集中,但是依然存在继承关系,那么protected访问修饰符类型依然可以访问
---------------------------------------------------------------------------------------
子类继承父类的时候,子类的修饰符不能比父类高。
例如:
//可访问性不一致
class Person //默认是internal修饰符
{
public string Name
{
get;
set;
}
}
public class student:Person // 所以这里不能继承,会报错
{
}
public class Person
{
public string Name
{
get;
set;
}
}
public class Myclass
{
//要求方法参数的访问性级别与方法本身的访问级别一致
public void Do(Person p)
{
Console.WriteLine(p.Name);
Console.ReadKey();
}
}
可访问性不一致,方法的参数和返回值的类型必须与方法本身的访问修饰符一致
--------------------------------------------------------------------------
#region 可访问性不一致,属性的访问级别与属性的类型的访问级别
class class1
{
}
public class Person1
{
public class1 c
{
get;
set;
}
}
#endregion |