常量通常与类型关联,而不与类型的实例关联。从逻辑上讲,常量始终是静态成员。
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有一条古老的格言,它的大致意思是,当事情变得过于复杂时,就搞更多的类型出来。当一个算法的实现开始变的复杂时,我会定义一些辅助类型来封装独立的功能。
分享到:
相关推荐
类中的成员可以被分为三种访问控制类型,即公有成员(Public)、私有成员(Private)和保护成员(Protected)。理解这三种类型的成员对编写面向对象的代码至关重要,因为它们决定了类的封装性和继承特性。 1. **...
作为深受编程人员爱戴和尊敬的编程专家... 第6章 类型和成员基础 第7章 常量和字段 第8章 方法:构造器、操作符、转换操作符和参数 第9章 属性 第10章 事件 第Ⅳ部分 基本类型 第11章 字符、字符串和文本
作为深受编程人员爱戴和尊敬的编程专家,微软.NET开发团队的顾问,本书... 第6章 类型和成员基础 第7章 常量和字段 第8章 方法:构造器、操作符、转换操作符和参数 第9章 属性 第10章 事件 第Ⅳ部分 基本类型
第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章:类型和成员基础 - **类型设计原则**:提供类型设计的最佳实践,帮助创建易于维护和扩展的类。 - **成员设计**:讨论如何设计类的成员变量和方法,使其既满足功能需求又保持良好的封装性。 #### 第7章...
总的来说,C#中的值类型和引用类型是编程基础,理解它们对于编写健壮的代码至关重要。同时,继承、隐藏和接口等面向对象特性提供了强大的工具,帮助我们构建复杂而可维护的系统。无论你是初学者还是有经验的开发者,...
Java程序基础成员变量和局部变量 Java程序基础成员变量和局部变量是Java程序设计中两个基本概念。成员变量是类的属性,跟对象一起出生和消失,而局部变量是函数的一部分,随着函数一起运行和结束。 成员变量是表明...
本实例主要探讨了三种类型的成员函数:普通成员函数、类成员函数和类静态成员函数。以下是对这三种函数类型的详细解释: 1. 普通成员函数(Non-static Member Functions): 普通成员函数是类的一部分,它们可以...
一个类可以包含多种类型的成员,包括成员变量(也称为字段)和成员函数(也称为方法)。成员变量用于存储类的状态信息,而成员函数则用于定义可以对这些状态执行的操作。 #### 创建类与成员变量 首先,我们需要...
本文将深入探讨"易用的指针类型成员的循环队列和链表"这两个概念,它们在C++编程中有着广泛的应用。 首先,我们来了解**指针**。在C++中,指针是一种特殊的数据类型,它可以存储内存地址,允许我们直接操作存储在该...
类型成员主要包括类(Class)的成员变量和成员函数,它们是类定义的重要组成部分,用来描述对象的状态和行为。下面将详细探讨这两个关键概念。 1. **成员变量**:成员变量,也被称为数据成员,是类内部存储数据的...
例如,类型A包含三个整型成员,类型B包含一个字符型成员、两个整型成员和一个双精度浮点型成员,类型C包含一个字符指针型成员和一个整型数组,类型D包含两个整数指针型成员和一个整型成员,类型E包含一个整型成员、...
在《数据类型检查基础知识》中,作者详细介绍了数据类型检查的基本原理和相关知识。 首先,类型检查是编译器的重要功能,它负责分析和验证程序中的数据类型信息,确保数据的类型与上下文匹配。数据类型定义了数据...
Matlab基础-数据类型 Matlab 作为一款功能强大且广泛应用的科学计算软件,数据类型是其核心组成部分之一。Matlab 中有 15 种基本的数据...理解和掌握 Matlab 的数据类型是使用 Matlab 进行科学计算和数据处理的基础。
"030--Java零基础-变量.mp4"和"031--Java零基础-变量.mp4"可能详细介绍了如何声明和使用变量,而"032--Java零基础-数据类型.mp4"和"033--Java零基础-数据类型.mp4"可能深入讨论了各种基本数据类型的特性和使用方法。...
作为支持面向组件程序设计的编程平台,CLI和ISO-C++有着迥异的设计思路,其中一个表现就在类型成员的设计上。本课程将向大家介绍CLI托管类型系统中的各种成员(除析构函数),包括字段、方法、构造函数、操作符、...
在C++编程语言中,类(Class)是创建对象的基础,它定义了一组相关的属性(成员变量)和行为(成员函数)。本教程将深入探讨C类的成员变量和成员函数,帮助你更好地理解和掌握面向对象编程的核心概念。 一、成员...
数组是最基础的构造数据类型,用于存储相同类型的数据,如字符串、矩阵等。但有时我们需要处理不同类型却相互关联的数据,这时就需要用到结构体和其他构造类型。 7.2 结构体与结构体类型变量的定义 结构体是一种...