`

类型和成员基础

    博客分类:
  • CLR
 
阅读更多

常量通常与类型关联,而不与类型的实例关联。从逻辑上讲,常量始终是静态成员。

 

CLR要求接口类型的所有成员都具有public可访问性。编译器会自动将所有成员的可访问性设为public。

 

一个派生类重写在它基类型中定义的成员时,C#编译器要求原始成员和重写成员具有相同的可访问性。也就是说,如果基类的成员是protected的,派生类中的重写成员也必须是protected的。但这只是C#语言本身的一个限制,而不是CLR的。从一个基类派生时,CLR允许放宽成员的可访问性限制,但不允许收紧。例如,类可以重写它的基类中定义的protected方法,并将重写的方法设为public(使访问限制更宽松),但不能将重写的方法设为private(使访问限制更严格)。这是因为CLR承诺派生类总是可以转型为基类,并获取对基类方法的访问权。

 

C#编译器对静态了进行了如下限制:

1.静态类必须直接从基类System.Object派生,从其他任何基类派生没有任何意义。

2.静态类不能实现任何接口,这是因为只有使用类的一个实例时,才可以调用类的接口方法。

3.静态类只能定义静态成员(字段、方法、属性、事件)。

4.静态类不能作为字段、方法参数、局部变量使用,因为它们都代表引用了一个实例的变量。

 

组件(.NET中成为程序集或)有“已经发布”的意思。

 

在.NET中,版本号包含4个部分:主版本号(major version)、次版本号(minor version)、内部版本号(build number)、修订号(revision)。如版本号为1.2.3.4的程序集,其主版本号为1,次版本号为2,内部版本号为3,修订号为4。

 

大多数编程语言(包括C#语言)在判断方法的唯一性时,除了方法名外,都只以参数为依据,方法的返回类型会被忽略。

 

OOP有一条古老的格言,它的大致意思是,当事情变得过于复杂时,就搞更多的类型出来。当一个算法的实现开始变的复杂时,我会定义一些辅助类型来封装独立的功能。

分享到:
评论

相关推荐

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    第6章 类型和成员基础 6.1 类型的各种成员 6.2 类型的可见性 6.2.1 友元程序集 6.3 成员的可访问性 6.4 静态类 6.5 分部类、结构和接口 6.6 组件、多态和版本控制 6.6.1 CLR如何调用虚方法、属性和事件 ...

    框架设计 CLR Via C#第二版.part1.rar

    作为深受编程人员爱戴和尊敬的编程专家... 第6章 类型和成员基础  第7章 常量和字段  第8章 方法:构造器、操作符、转换操作符和参数  第9章 属性  第10章 事件 第Ⅳ部分 基本类型  第11章 字符、字符串和文本

    框架设计 CLR Via C#第二版.part2.rar

    作为深受编程人员爱戴和尊敬的编程专家,微软.NET开发团队的顾问,本书... 第6章 类型和成员基础  第7章 常量和字段  第8章 方法:构造器、操作符、转换操作符和参数  第9章 属性  第10章 事件 第Ⅳ部分 基本类型

    CLR.via.C#.3rd.Edition 2010 框架设计 Via C# 英文版 免积分

    第1章 CLR的执行模型 第2章 生成、打包、部署和管理应用程序及类型 第3章共享程序集和强命名程序集第Ⅱ部分 类型的使用 第4章 类型基础 第5章 基元、引用和值类型 第Ⅲ部分 类型的设计 第6章类型和成员基础 ...

    CLR.via.C#.(中文第3版)(自制详细书签)Part1

    第6章 类型和成员基础 6.1 类型的各种成员 6.2 类型的可见性 6.2.1 友元程序集 6.3 成员的可访问性 6.4 静态类 6.5 分部类、结构和接口 6.6 组件、多态和版本控制 6.6.1 CLR如何调用虚方法、属性和事件 ...

    CLR.via.C#.(中文第3版)(自制详细书签)

    第6章 类型和成员基础 6.1 类型的各种成员 6.2 类型的可见性 6.2.1 友元程序集 6.3 成员的可访问性 6.4 静态类 6.5 分部类、结构和接口 6.6 组件、多态和版本控制 6.6.1 CLR如何调用虚方法、属性和事件 ...

    CLR.via.C#.(中文第3版)(自制详细书签)Part3

    第6章 类型和成员基础 6.1 类型的各种成员 6.2 类型的可见性 6.2.1 友元程序集 6.3 成员的可访问性 6.4 静态类 6.5 分部类、结构和接口 6.6 组件、多态和版本控制 6.6.1 CLR如何调用虚方法、属性和事件 ...

    C#.Net基础5 基础入门知识 数据类型 范例 ppt 实例 可以直接运行

    我们可以将一个枚举类型的变量跟int类型和string类型互相转换。 枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转换的语法互相转换。 当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示...

    VC++ 2005(3):类型成员

    作为支持面向组件程序设计的编程平台,CLI和ISO-C++有着迥异的设计思路,其中一个表现就在类型成员的设计上。本课程将向大家介绍CLI托管类型系统中的各种成员(除析构函数),包括字段、方法、构造函数、操作符、...

    C#数据类型,数组、结构和枚举是学习C#的基础!

    C# 数据类型、数组、结构和枚举 C# 数据类型是学习 C# 的基础,它们是构成 C# 程序设计...C# 数据类型、数组、结构和枚举是学习 C# 的基础,它们是构成 C# 程序设计的基本元素。理解这些概念和技术是学习 C# 的关键。

    PHP编程基础--数据类型转换.ppt

    其他类型转换为布尔类型 当其他类型需要转换为布尔类型时,整型0、浮点型0.0、字符串型""与"0"、不包含任何元素的数组、不包含任何成员变量的对象、NULL会被转换为false,其他值被转换为true。 2.布尔型转换为整型 ...

    建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。

    还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。 编程环境:vs2010,语言:...

    c-c++及数据结构基础视频教程完整版,最适合自学的c++基础

    16_const的基础和const符号表机制探究_传智扫地僧17_const和#define的对比_传智扫地僧18_引用的基础知识(定义和函数参数) 19_复杂数据类型引用做函数参数__传智扫地僧20_引用的本质剖析_传智扫地僧 21_函数返回值是...

    C#_基础培训

    数据类型与变量 C#中的关键字和运算符 分支和循环结构 Part3:面向对象编程基础知识 面向对象的概念 抽象化与建模基础 面向对象设计方法和面向对象编程技术 C#中类的组织结构 方法成员 数据成员 成员的使用范围 ...

    Java面向对象编程基础PPT课件.pptx

    Java 面向对象编程基础 面向对象编程是一种编程范式,强调将问题域中的对象和概念映射到编程语言中的对象和概念。Java 是一种面向对象的编程语言,支持面向对象编程的基本概念和机制。 对象、类和实体 在面向对象...

    JAVA标识符关键字和数据类型PPT教案学习.pptx

    "JAVA标识符关键字和数据类型PPT教案学习.pptx" 本PPT教案主要讲解了Java语言中的标识符、关键字和数据类型等...本PPT教案涵盖了Java语言中的标识符、关键字、变量、数据类型和常量等知识点,是Java语言的基础知识。

    C#基础知识点.doc

    为了更好地学习和掌握C#语言,本文将对C#基础知识点进行详细的总结和解释。 1. 数据类型 C#中的数据类型分为两大类:值类型和引用类型。值类型的变量直接包含着自身的数据,而引用类型的变量是指向实际数据的地址...

    java基础常识与概念

    基础概念与常识 Java 语言有哪些特点? JVM vs JDK vs JRE JVM JDK 和 JRE 什么是字节码?采用字节码的好处是什么? 为什么说 Java 语言“编译与解释并存”? Oracle JDK vs OpenJDK Java 和 C++ 的区别? 基本语法 字符...

    C语言:第三章 数据类型、运算符和表达式.ppt

    C语言第三章 数据类型、运算符和表达式 本章主要讲解C语言中的数据类型、运算符和表达式。数据类型是指程序中变量的类型,包括基本数据...本章对C语言中的数据类型、运算符和表达式进行了讲解,为后续学习奠定了基础。

    高级语言程序设计c3数据类型.ppt

    高级语言程序设计 C 语言数据类型是编程语言的基础,决定了数据在内存中的存储方式和取值范围。数据类型分为基本类型、构造类型、指针类型、空类型 void 等。基本类型包括整型、字符型、数组、浮点型、枚举类型、...

Global site tag (gtag.js) - Google Analytics