《C#高级编程》第四版
C#中访问修饰符(第4章 继承)
修饰符:应用于类型或成员的关键字,通过它可以指定方法的可见性
1.可见性修饰符
下表修饰符确定了是否允许其它代码访问某一项
修饰符 应用于 说明
public 所有的类型或成员 任何代码均可访问该方法
protected 类型和内嵌类型的所有成员 只有派生的类型能访问该方法
internal 所有的类型或成员 只能在包含它的程序集中访问该方法
private 类型和内嵌类型的所有成员 只能在它所属的类型中访问该方法
protected internal 类型和内嵌类型的所有成员 只能在包含它的程序集和派生类型的代码中访问该方法
对于C#类的限制修饰符的总结:
(1)public可以被任意存取
(2)protected只可以被本类和其继承子类存取
(3)internal 只可以被本组合体(Assembly)内的所有类存取(C#中类的默认访问修饰符)
组合体:是C#语言中类被组合后的逻辑单位和物理单位(编译后的扩展名一般是.dll或.exe)
(4)protected internal C#中唯一的一种组合限制修饰符,只可以被本组合体内的所有的类和这些类的继承子类所存取
(5)private只可以被本类所存取
注意:不能把类型定义为protected、private和protected internal
因为这些修饰符对于包含在命名空间中的类型来说是没有意义的
所以:命名空间或编译单元内的类只有public和internal两种修饰
但在嵌套类中,可以用这些修饰符定义,因为此情况下类型也具有成员的状态
如:
public class OuterClass
{
protected class InnerClass
{
.....
}
}
在嵌套类中,内部类总是可以访问外部类的所有成员
2.其他修饰符
修饰符 应用于 说明
new 函数成员 派生类方法隐藏基类方法
static 类、所有成员 成员不在类的具体实例上执行(static类中只能包含static成员)
virtual 函数成员 成员可以由派生类重写
abstract 类、函数成员 抽象,定义成员签名,没有提供实现代码
override 函数成员 成员重写基类的虚拟或抽象成员
sealed 类、函数成员 对于类则表示其它类不能从该类继承
成员重写了继承的虚拟成员,但继承该类的任何类都不能再重写该成员
sealed override 必须一起使用
extern修饰符:用于声明在外部实现的方法(成员在外部用另一种语言实现)
常见用法是在使用Interop服务调入非托管代码时与DllImport属性一起使用;
在这种情况下,该方法还必须声明为static
如:
使用c#程序修改ftp用户密码的操作的代码中:
[DllImport("WinInet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr InternetConnect(
IntPtr hInternet,
[MarshalAs(UnmanagedType.LPTStr)] string serverName,
InternetPort serverPort,
[MarshalAs(UnmanagedType.LPTStr)] string username,
[MarshalAs(UnmanagedType.LPTStr)] string password,
InternetService service,
int flags,
IntPtr context
);
分享到:
相关推荐
C#面向对象学习心得.txt
本txt为传智播客视频第2部分C#面向对象 所对应的笔记整理,参考视频学习,学习效率更高。视频可在 http://www.verycd.com/topics/2857178/ 免费下载,有需要的给我留言
Visual C#学习笔记光盘 简介:本书由浅入深地讲解Visual C# 2005编程知识,全书内容分为6篇,共27章,第一篇介绍Visual Studio 2005开发环境和C#基础,其中包括Visual C# 2005简介,C#语言基础,面向对象编程...
全书共包括21章,分别介绍了以下内容: 开发环境搭建、语法基础、面向对象编程、类型转换、字符串处理与数学运算、控制台应用程序、变体的应用、集合与泛型、调试与单元测试、Lambda表达式、LINQ查询语句、Windows...
全书共包括21章,分别介绍了以下内容: 开发环境搭建、语法基础、面向对象编程、类型转换、字符串处理与数学运算、控制台应用程序、变体的应用、集合与泛型、调试与单元测试、Lambda表达式、LINQ查询语句、Windows...
我个人觉得面向对象是本本主义、洁癖的体现、是重构后的最后归属、它可能会矫情、在市场变化老板着急产品狭隘的情况下 快速制作快速上线才是王道,面向对象的基础是对事物的详尽认知,短时间内能做到吗 不好做到,...
c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] 51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct ...
C#学习笔记,利用面向对象的方式进行操作数据库以及进行学习使用
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它...
主要介绍了C#中面向对象编程机制之多态学习笔记,本文总结了个人对多态的理解以及接口多态、继承多态等内容,并给出了代码示例,需要的朋友可以参考下
主要介绍了C#中面向对象编程机制之继承学习笔记,本文给出一个简单子实例讲解C#中的继承,并讲解了一些C#继承的知识技巧,需要的朋友可以参考下
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它...
java面向对象学习编程笔记核心整理
java面向对象学习编程笔记核心整理
java面向对象学习编程笔记核心整理
java面向对象学习编程笔记核心整理
java面向对象学习编程笔记核心整理
java面向对象学习编程笔记核心整理
java面向对象学习编程笔记核心整理