C# 类的成员

您所在的位置:网站首页 字段的属性是什么 C# 类的成员

C# 类的成员

2024-07-14 04:08| 来源: 网络整理| 查看: 265

本博文为半摘记性质 —— 声明:本文内容系互联网整理收集,内容有改动。主要参考资料: https://www.runoob.com/csharp/csharp-tutorial.html 菜鸟教程 https://docs.microsoft.com/zh-cn/dotnet/csharp/ Microsoft C#文档 零散的资料在每章节末尾给出。 ————

类描述了一组有相同属性和相同方法的对象。

0类的成员

类的成员如下图所示: 在这里插入图片描述本文主讲字段、方法和属性。

1方法

一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块。每一个 C# 程序至少有一个带有 Main 方法的类,要使用一个方法,需要定义方法并调用方法。 方法的定义模板:

(Parameter List)//访问修饰符;返回类型;方法名称;参数列表 { Method Body//方法主体 } //template —— class Shape//定义类 { public void setWidth(int w)//定义方法 { width = w; } } //example

方法可以用访问修饰符进行封装。(详见【字段】章节)

main方法

定义格式:

tatic void Main(string[] args) { ... }

string[ ] args 指的就是你在命令窗口输入的参数,也就是命令行参数。

函数与方法的关系

方法在某种程度上相当于C语言的函数。但在正式的c#术语中区分函数和方法。在c#术语中,“函数成员”不仅包含方法,也包含类或结构的一些非数据成员,如索引器、运算符、构造函数和析构函数等,甚至还有属性。这些都不是数据成员,字段、常量和事件才是数据成员。

方法一般不返回数据,而函数通常都返回数据。现在一般不区分两者,统一叫方法。

2构造函数 构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;一个类可以有多个构造函数(构造函数的重载)。构造函数必须存在。如果没有为类提供构造函数,则 C# 将默认创建一个构造函数,该函数会实例化对象并将成员变量设置为默认值。

类的 构造函数 是类的一个特殊的成员函数,是一种特殊的方法,主要用来在创建对象时初始化对象(为新对象的成员变量赋初始值),总与new运算符一起使用对该类进行实例化( 实例化对象就是调用合适的构造函数进行类的实例化)。 构造函数的名称与类的名称完全相同,它没有任何返回类型。 默认的构造函数没有任何参数。带有参数的构造函数叫做参数化构造函数,可以在创建对象的同时给对象赋初始值。

class Chinar { private int a = 1; private int b = 1; private string c = "Chinar"; private object d = 666; //构造函数用来完成 —— 初始化工作 public Chinar() //声明构造函数,函数名与类名相同 { //每个类,本身默认有一个。如果我们不写明这个 public Chinar()函数,系统仅调用系统默认的。 //自定义构造 public Chinar()函数后,系统只会调用自定义的 Chinar() } —————— //这是一个多参数的构造函数 public Chinar(int a, int b, string c, object d) { ... } }

new 运算符:用于创建对象和调用构造函数(即类的实例化),格式为:

类 实例名 = new 类(); 例:Shape sha = new Shape(); 3字段

字段又称为“成员变量”,一般用在一个类内部做数据交互使用,通常使用private修饰。 字段的数据类型有: 在这里插入图片描述访问修饰符有:

public:所有对象都可以访问; private:对象本身在对象内部可以访问; protected:只有该类对象及其子类对象可以访问 internal:同一个程序集的对象可以访问; protected internal:访问限于当前程序集或派生自包含类的类型。

实例:

class Shape//定义类 { public void setWidth(int w)//定义方法 { width = w; } protected int width;//定义字段(成员变量) protected int height; } 4属性

属性是 C# 中的一等公民。 属性属于高级概念,在OOP(面向对象)中,主要使用属性来描述对象的静态特征(即属性是对象的一个特征)。属性一般采用public修饰。 属性(Property) 是类(class)、结构(structure)和接口(interface)的命名(named)成员。 类或结构中的成员变量或方法称为 域(Field)。属性(Property)是域(Field)的扩展,且可使用相同的语法来访问。它们使用 访问器(accessors) 让私有域的值可被读写或操作。访问器声明可包含一个 get 访问器、一个 set 访问器,或者同时包含二者。

老式属性声明格式

属性的定义格式(举例):

// 声明类型为 string 的 Code 属性 public string Code { get//读私有域 { return code; } set//写私有域 { code = value; } }

使用格式为:

// 创建一个新的 Student 对象 Student s = new Student(); s.Code = "001"; 新式属性声明格式

属性可以被编译器自动实现。 当属性访问器中不需要任何其他逻辑时,我们可以使用自动实现的属性,它会使属性声明更加简洁。自动实现的属性在编译后,也是生成了老式的读/写属性。

public string Code{get;set;}

键入“prop”连按两次“Tab”,可自动快速生成。

属性和字段的区别

C#属性是字段的扩展 属性是类或对象中的一种智能字段形式。 从对象外部,它们看起来像对象中的字段。 但是,属性可以通过丰富的 C# 功能来实现。 访问属性时,其行为类似于字段。 但与字段不同的是,属性通过访问器实现。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3