`

类型和成员基础

    博客分类:
  • 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有一条古老的格言,它的大致意思是,当事情变得过于复杂时,就搞更多的类型出来。当一个算法的实现开始变的复杂时,我会定义一些辅助类型来封装独立的功能。

分享到:
评论

相关推荐

    类中成员类型

    类中的成员可以被分为三种访问控制类型,即公有成员(Public)、私有成员(Private)和保护成员(Protected)。理解这三种类型的成员对编写面向对象的代码至关重要,因为它们决定了类的封装性和继承特性。 1. **...

    框架设计 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#.(中文第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#.3rd.Edition 2010 框架设计 Via C# 英文版 免积分

    #### 第6章:类型和成员基础 - **类型设计原则**:提供类型设计的最佳实践,帮助创建易于维护和扩展的类。 - **成员设计**:讨论如何设计类的成员变量和方法,使其既满足功能需求又保持良好的封装性。 #### 第7章...

    C#基础知识 值类型、引用类型

    总的来说,C#中的值类型和引用类型是编程基础,理解它们对于编写健壮的代码至关重要。同时,继承、隐藏和接口等面向对象特性提供了强大的工具,帮助我们构建复杂而可维护的系统。无论你是初学者还是有经验的开发者,...

    Java程序基础成员变量和局部变量PPT优秀资料.pptx

    Java程序基础成员变量和局部变量 Java程序基础成员变量和局部变量是Java程序设计中两个基本概念。成员变量是类的属性,跟对象一起出生和消失,而局部变量是函数的一部分,随着函数一起运行和结束。 成员变量是表明...

    普通成员函数、类成员函数和类静态成员函数实例(VS2010)

    本实例主要探讨了三种类型的成员函数:普通成员函数、类成员函数和类静态成员函数。以下是对这三种函数类型的详细解释: 1. 普通成员函数(Non-static Member Functions): 普通成员函数是类的一部分,它们可以...

    C++在类的成员函数中对成员变量进行操作和输出

    一个类可以包含多种类型的成员,包括成员变量(也称为字段)和成员函数(也称为方法)。成员变量用于存储类的状态信息,而成员函数则用于定义可以对这些状态执行的操作。 #### 创建类与成员变量 首先,我们需要...

    易用的指针类型成员的循环队列和链表

    本文将深入探讨"易用的指针类型成员的循环队列和链表"这两个概念,它们在C++编程中有着广泛的应用。 首先,我们来了解**指针**。在C++中,指针是一种特殊的数据类型,它可以存储内存地址,允许我们直接操作存储在该...

    VC++ 2005系列课程(3):类型成员

    类型成员主要包括类(Class)的成员变量和成员函数,它们是类定义的重要组成部分,用来描述对象的状态和行为。下面将详细探讨这两个关键概念。 1. **成员变量**:成员变量,也被称为数据成员,是类内部存储数据的...

    C++语言基础教程3.pdf

    例如,类型A包含三个整型成员,类型B包含一个字符型成员、两个整型成员和一个双精度浮点型成员,类型C包含一个字符指针型成员和一个整型数组,类型D包含两个整数指针型成员和一个整型成员,类型E包含一个整型成员、...

    数据类型检查基础知识.pptx

    在《数据类型检查基础知识》中,作者详细介绍了数据类型检查的基本原理和相关知识。 首先,类型检查是编译器的重要功能,它负责分析和验证程序中的数据类型信息,确保数据的类型与上下文匹配。数据类型定义了数据...

    Matlab基础-据类型

    Matlab基础-数据类型 Matlab 作为一款功能强大且广泛应用的科学计算软件,数据类型是其核心组成部分之一。Matlab 中有 15 种基本的数据...理解和掌握 Matlab 的数据类型是使用 Matlab 进行科学计算和数据处理的基础。

    javaSE基础变量、数据类型-4

    "030--Java零基础-变量.mp4"和"031--Java零基础-变量.mp4"可能详细介绍了如何声明和使用变量,而"032--Java零基础-数据类型.mp4"和"033--Java零基础-数据类型.mp4"可能深入讨论了各种基本数据类型的特性和使用方法。...

    C++类中的静态成员变量和静态成员函数的作用

    在C++编程语言中,类是面向对象编程的基础,它允许程序员定义包含数据成员(变量)和成员函数(方法)的复合数据类型。其中,静态成员变量和静态成员函数具有特殊的特性,它们在类的整个生命周期内共享单一实例,...

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

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

    C语言基础-数据类型.pdf

    这对于组织复杂的数据非常有用,可以包含多个成员,每个成员都可以有自己的类型。 #### 存储大小与值范围 不同的类型有不同的存储大小和值范围。例如,`char` 类型占用1字节,而`int` 类型在大多数现代系统上占用4...

Global site tag (gtag.js) - Google Analytics