一、C#中类的声明

在C#中必须先声明类,然后才能在程序中使用。

类的声明格式如下:

[类的属性] [访问修饰符] class 类名称 [: 父类名]
{
    [成员修饰符] 类的成员变量或者成员函数
}

?类的属性:类的属性集。

?访问修饰符:说明类的特性。类的修饰符可以是以下几种之一或者是它们的组合:

?new:只允许在嵌套类声明时使用,表明类中隐藏了由基类中继承而来的并且与基类中同名的成员。

?public:公有类,允许对该类进行访问。

?protected:受保护类,只能从所在类和所在类派生的子类中进行访问。

?internal:内部类,在同一个项目里的所有代码都可以访问这个类。如果类没有添加访问修饰符,会被默认声明为“internal”。

?private:私有类,只有本类才能访问。

?abstract:抽象类,访问不受限制,但只能被继承,不能建立类的实例。

?sealed:密封类,不允许被继承,只能建立类的实例。

?class:声明类的关键字。

?类名称:自定义的类的名称。

?父类名:可以省略,表示被继承的类的名称。如果省略,则默认从object类继承而来。“父类名”也可以是接口,一个类可以继承多个接口,如果有多个接口时,请用逗号分隔开。
类与类之间只能单继承,但是类可以在继承一个父类的同时继承一个或多个接口。如果在类的声明中,既有父类又有接口类,则需要在冒号后面先放父类,然后再放接口名。

二、示例
 
namespace Test              // 声明命名空间
{
    class Program           // 声明类
    {
        public Program()    // 构造函数
        {
            .......
        }
        // 类成员和方法
    }
}

如果使用public关键字来声明类Program,则其他项目中的代码也可以访问这个类。在本例中没有使用访问修饰符,类会被默认声明为“internal”,表示只有在同一项目里的所有代码才可以访问这个类。

一个类的创建需要三部分:命名空间、声明类和构造函数。

?命名空间:主要是区别不同程序集中的类。在Microsoft Visual Studio中创建项目时,会自动创建命名空间。

?构造函数:定义类时必须创建的函数。如果不创建构造函数,创建的类也会有默认构造函数。

C#中类的声明的更多相关文章

  1. IOS-day02_OC中类的声明

    在上一个笔记中类的使用中,在编译链接的时候会有警告,原因就是我们没有对类进行声明 类的声明如下:使用关键字@interface #import <Foundation/Foundation.h& ...

  2. OC基础--OC中类的声明与定义

    OC中设计一个类的步骤: 一.声明类: 1.用到的关键字--@interface 和 @end 2.类名 3.继承NSObject 4.属性 5.方法(行为,只需要声明) 二.实现(定义)类 1.用到 ...

  3. php中类的声明与使用

    <?php /**php语言是支持面向对象编程的,对于面向对象的编程,学过java和C++的人都知道啊! *如果不清楚的去baidu问一下就可以了. */ //我们来定义一个类,定义类的关键字是 ...

  4. Python中类的声明,使用,属性,实例属性,计算属性及继承,重写

    Python中的类的定义以及使用: 类的定义: 定义类 在Python中,类的定义使用class关键字来实现 语法如下: class className: "类的注释" 类的实体 ...

  5. C#学习历程(九)[类的定义与声明]

    一.C#中类的声明 在C#中必须先声明类,然后才能在程序中使用. 类的声明格式如下: [类的属性] [访问修饰符] class 类名称 [: 父类名]{    [成员修饰符] 类的成员变量或者成员函数 ...

  6. 顺序表(SeqList)

    ---恢复内容开始--- 数据结构在上周结课,接下来就是为期几周的上机实验,说是实验课我感觉还不如不上.几乎每个人都是按着老师的要求把书上的代码打一遍,变都不变.一遍以后连自己打的什么都不知道. 与其 ...

  7. [Scala] 快学Scala A1L1

    基础 1.1 声明值和变量 在Scala中,鼓励使用val; 不需要给出值或变量的类型,这个信息可以从初始化表达式推断出来.在必要的时候,可以指定类型. 在Scala中,仅当同一行代码中存在多条语句时 ...

  8. 当C++多继承遇上类型转换[转]

      1 由来 客户用陈旧的VC++6.0进行项目开发,有一块功能需要我来实现.让一个早就习惯了VS2013的人去使用C++支持不太好的VC6去做开发实在是非常不爽,于是另辟蹊径,打算使用VC++201 ...

  9. 转:ffdshow 源代码分析

    ffdshow神奇的功能:视频播放时显示运动矢量和QP FFDShow可以称得上是全能的解码.编码器.最初FFDShow只是mpeg视频解码器,不过现在他能做到的远不止于此.它能够解码的视频格式已经远 ...

随机推荐

  1. public class 与 class 的区别

    public class 与 class 的区别 1.一个类前面的public是可有可无的 2.如果一个类使用 public 修饰,则文件名必须与类名一致 3.如果一个类前面没有使用public修饰, ...

  2. 转:Android中的Handler的机制与用法详解

    注:Message类的用法: message的几个参数都可以携带数据,其中arg1与arg2可以携带int类型,what是用户自定义的int型,这样接受者可以了解这个消息的信息. 说明:使用Messa ...

  3. The function getUserId must be used with a prefix when a default namespace is not specified 解决办法

    The function getUserId must be used with a prefix when a default namespace is not specified 解决方法: 1. ...

  4. Andrew Ng 的 Machine Learning 课程学习 (week4) Multi-class Classification and Neural Networks

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  5. C#数字图像处理算法学习笔记(二)--点运算与直方图

    C#数字图像处理算法学习笔记(二)--点运算与直方图 在数字图像处理中,点运算是一种简单而重要的技术.点运算只是根据对象的像素的输入灰度值来决定像素的输出灰度值的图像处理运算.它有时也被称为对比度增强 ...

  6. 阿里云短信验证~JAVA后台

    maven :中的 pom.xml添加 <dependency> <groupId>com.aliyun</groupId> <artifactId>a ...

  7. 如何在Chrome粘贴图片直接上传

    背景 截图或页面复制图片,可以直接通过Ctrl+v 粘贴上传图片 原理 操作:复制(截图)=>粘贴=>上传 监听粘贴事件=>获取剪贴板里的内容=>发请求上传 浏览器:Chrom ...

  8. vue打包后CSS中引用的背景图片不显示问题

    vue项目中,在css样式中引用了一张背景图片,开发环境下是可以正常显示,build之后背景图片不显示. 解决方法: 找到build/utils.js文件 修改成为如下所示内容:  添加红框中的内容即 ...

  9. 轻松完成excel读写操作- 基于POI的框架BingExcel的使用(1)

    Bingexcel User Guide 使用maven进行项目开发目前项目的maven仓库是在github上,浏览地址为 https://github.com/bingyulei007/mvn-re ...

  10. int **a 和 int (*a)[]的区别

    关于理论知识隔壁们的教程说的很详细了我就不多赘述了.我这边主要贴一段代码来看看这两种东西使用上的区别到底在哪. #include <stdio.h> int main(int argc, ...