常量通常与类型关联,而不与类型的实例关联。从逻辑上讲,常量始终是静态成员。
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有一条古老的格言,它的大致意思是,当事情变得过于复杂时,就搞更多的类型出来。当一个算法的实现开始变的复杂时,我会定义一些辅助类型来封装独立的功能。
分享到:
相关推荐
第6章 类型和成员基础 6.1 类型的各种成员 6.2 类型的可见性 6.2.1 友元程序集 6.3 成员的可访问性 6.4 静态类 6.5 分部类、结构和接口 6.6 组件、多态和版本控制 6.6.1 CLR如何调用虚方法、属性和事件 ...
作为深受编程人员爱戴和尊敬的编程专家... 第6章 类型和成员基础 第7章 常量和字段 第8章 方法:构造器、操作符、转换操作符和参数 第9章 属性 第10章 事件 第Ⅳ部分 基本类型 第11章 字符、字符串和文本
作为深受编程人员爱戴和尊敬的编程专家,微软.NET开发团队的顾问,本书... 第6章 类型和成员基础 第7章 常量和字段 第8章 方法:构造器、操作符、转换操作符和参数 第9章 属性 第10章 事件 第Ⅳ部分 基本类型
第1章 CLR的执行模型 第2章 生成、打包、部署和管理应用程序及类型 第3章共享程序集和强命名程序集第Ⅱ部分 类型的使用 第4章 类型基础 第5章 基元、引用和值类型 第Ⅲ部分 类型的设计 第6章类型和成员基础 ...
第6章 类型和成员基础 6.1 类型的各种成员 6.2 类型的可见性 6.2.1 友元程序集 6.3 成员的可访问性 6.4 静态类 6.5 分部类、结构和接口 6.6 组件、多态和版本控制 6.6.1 CLR如何调用虚方法、属性和事件 ...
第6章 类型和成员基础 6.1 类型的各种成员 6.2 类型的可见性 6.2.1 友元程序集 6.3 成员的可访问性 6.4 静态类 6.5 分部类、结构和接口 6.6 组件、多态和版本控制 6.6.1 CLR如何调用虚方法、属性和事件 ...
第6章 类型和成员基础 6.1 类型的各种成员 6.2 类型的可见性 6.2.1 友元程序集 6.3 成员的可访问性 6.4 静态类 6.5 分部类、结构和接口 6.6 组件、多态和版本控制 6.6.1 CLR如何调用虚方法、属性和事件 ...
我们可以将一个枚举类型的变量跟int类型和string类型互相转换。 枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转换的语法互相转换。 当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示...
作为支持面向组件程序设计的编程平台,CLI和ISO-C++有着迥异的设计思路,其中一个表现就在类型成员的设计上。本课程将向大家介绍CLI托管类型系统中的各种成员(除析构函数),包括字段、方法、构造函数、操作符、...
C# 数据类型、数组、结构和枚举 C# 数据类型是学习 C# 的基础,它们是构成 C# 程序设计...C# 数据类型、数组、结构和枚举是学习 C# 的基础,它们是构成 C# 程序设计的基本元素。理解这些概念和技术是学习 C# 的关键。
其他类型转换为布尔类型 当其他类型需要转换为布尔类型时,整型0、浮点型0.0、字符串型""与"0"、不包含任何元素的数组、不包含任何成员变量的对象、NULL会被转换为false,其他值被转换为true。 2.布尔型转换为整型 ...
还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。 编程环境:vs2010,语言:...
16_const的基础和const符号表机制探究_传智扫地僧17_const和#define的对比_传智扫地僧18_引用的基础知识(定义和函数参数) 19_复杂数据类型引用做函数参数__传智扫地僧20_引用的本质剖析_传智扫地僧 21_函数返回值是...
数据类型与变量 C#中的关键字和运算符 分支和循环结构 Part3:面向对象编程基础知识 面向对象的概念 抽象化与建模基础 面向对象设计方法和面向对象编程技术 C#中类的组织结构 方法成员 数据成员 成员的使用范围 ...
Java 面向对象编程基础 面向对象编程是一种编程范式,强调将问题域中的对象和概念映射到编程语言中的对象和概念。Java 是一种面向对象的编程语言,支持面向对象编程的基本概念和机制。 对象、类和实体 在面向对象...
"JAVA标识符关键字和数据类型PPT教案学习.pptx" 本PPT教案主要讲解了Java语言中的标识符、关键字和数据类型等...本PPT教案涵盖了Java语言中的标识符、关键字、变量、数据类型和常量等知识点,是Java语言的基础知识。
为了更好地学习和掌握C#语言,本文将对C#基础知识点进行详细的总结和解释。 1. 数据类型 C#中的数据类型分为两大类:值类型和引用类型。值类型的变量直接包含着自身的数据,而引用类型的变量是指向实际数据的地址...
基础概念与常识 Java 语言有哪些特点? JVM vs JDK vs JRE JVM JDK 和 JRE 什么是字节码?采用字节码的好处是什么? 为什么说 Java 语言“编译与解释并存”? Oracle JDK vs OpenJDK Java 和 C++ 的区别? 基本语法 字符...
C语言第三章 数据类型、运算符和表达式 本章主要讲解C语言中的数据类型、运算符和表达式。数据类型是指程序中变量的类型,包括基本数据...本章对C语言中的数据类型、运算符和表达式进行了讲解,为后续学习奠定了基础。
高级语言程序设计 C 语言数据类型是编程语言的基础,决定了数据在内存中的存储方式和取值范围。数据类型分为基本类型、构造类型、指针类型、空类型 void 等。基本类型包括整型、字符型、数组、浮点型、枚举类型、...