当前位置: 首页 > news >正文

C# 类的基本概念(类成员)

本章内容:
类的概述
程序和类:一个简单的示例
声明类
类成员
创建变量和类的实例
为数据分配内存
实例成员
访问修饰符
从类的内部访问成员
从类的外部访问成员
综合应用

类成员

字段和方法是最重要的类成员类型。字段是数据成员,方法是函数成员。

字段

字段是隶属于类的变量。

它可以是任何类型,无论是预定义类型还是用户定义类型。
和所有变量一样,字段用来保存数据,并具有如下特征:
可以被写人;
可以被读取。

声明一个字段最简单的语句如下:

image
**说明 **与C和C++不同,C#在类型的外部不能声明全局变量(也就是变量或字段)。所有的字段
都属于类型,而且必须在类型声明内部声明。

显式和隐式字段初始化

因为字段是一种变量,所以字段初始化语句在语法上和上一章所述的变量初始化语句相同。
字段初始化语句是字段声明的一部分,由一个等号后面跟着一个求值表达式组成。
初始化值必须是编译时可确定的。

image

如果没有初始化语句,字段的值会被编译器设为默认值,默认值由字段的类型决定。简
单类型的默认值见表4-1。可是总结起来,每种值类型的默认值都是0,bool型的默认值
是false,引用类型的默认值为null。

例如,下面的代码声明了4个字段,前两个字段被隐式初始化,另外两个字段被初始化语句
显式初始化。

class MyClass
{int F1; //初始化为0  -值类型string F2;//初始化为null -引用类型int F3=25;  //初始化为25string F4="abcd";//初始化为"abcd"
}

声明多个字段

可以通过用逗号分隔名称的方式,在同一条语句中声明多个相同类型的字段。但不能在一个
声明中混合不同的类型。例如,可以把之前的4个字段声明结合成两条语句,语义结果相同。

int F1,F3=25;
string F2,F4="abcd";

方法

方法是具有名称的可执行代码块,可以从程序的很多不同地方执行,甚至从其他程序中执行。
(还有一种没有名称的匿名方法,将在第14章讲述。)
当方法被调用(call/invoke)时,它执行自己所含的代码,然后返回到调用它的代码并继续
执行调用代码。有些方法返回一个值到它们被调用的位置。方法相当于C++中的成员函数

声明方法的最简单语法包括以下组成部分。
返回类型 它声明了方法返回值的类型。如果一个方法不返回值,那么返回类型被指定
为void。
名称 这是方法的名称
参数列表 它至少由一对空的圆括号组成。如果有参数(参数将在下一章阐述),将被列
在圆括号中间。
方法体 它由一对大括号组成,大括号内包含执行代码。

例如,下面的代码声明了一个类,带有一个名为PrintNums的简单方法。从这个声明中可以
看出下面几点关于PrintNums的情况:
它不返回值,因此返回类型指定为void;
它有空的参数列表;
它的方法体有两行代码,其中第1行打印数字1,第2行打印数字2。

image
说明 与C和C++不同,C#中没有全局函数(也就是方法或函数)声明在类型声明的外部。同
样,和C/C++不同,c#中方法没有默认的返回类型。所有方法必须包含返回类型或void。

http://www.xdnf.cn/news/169039.html

相关文章:

  • 16bit 高精度低延时霍尔角度编码器,KTH7824,替代MA730
  • 高自由度与多功能指尖设计:Allegro灵巧手V5(4F Plus)的技术亮点
  • 电商数据采集电商,行业数据分析,平台数据获取|稳定的API接口数据
  • 榕壹云国际版短剧系统:基于Spring Boot+MySQL+UniApp的全球短剧创作平台
  • Scala 函数柯里化及闭包
  • 用 Nodemon 解决 npm run serve 频繁重启服务
  • 2个小时1.5w字| React Golang 全栈微服务实战
  • 双目RealSense系统配置rs_camera.launch----实现D435i自制rosbag数据集到离线场景的slam建图
  • BP 算法探秘 :神经网络的幕后引擎
  • OceanBase TPCC测试常见报错汇总
  • 游戏引擎学习第248天:清理数据块显示
  • 第11章 安全网络架构和组件(一)
  • python 3.14 暂不支持 pyside6 ? python 窗体无法显示!
  • 线性代数—向量与矩阵的范数(Norm)
  • 一、linux系统启动过程操作记录
  • 「Docker已死?」:基于Wasm容器的新型交付体系如何颠覆十二因素应用宣言
  • 部署mongodb三幅本集群
  • [Vulfocus解题系列]Apache HugeGraph JWT Token硬编码导致权限绕过(CVE-2024-43441)
  • RagFlow文档切块提升
  • 光敏材料与智能传感技术的能源系统创新研究
  • R语言操作n
  • SpringBoot自动装配
  • pytorch搭建并训练神经网络
  • C++ 基于多设计模式下的同步异步⽇志系统-2项目实现
  • 【网络原理】从零开始深入理解TCP的各项特性和机制.(二)
  • git回退commit
  • 如何打包一个QT 程序
  • rockermq多线程消费者配置
  • Android——RecyclerView
  • Qt 中 QSQLITE 和 QODBC 数据库连接的区别