C#类的定义

article/2025/3/19 22:13:46

在C#语言中创建的任何项目都有类的存在,通过类能很好地体现面向对象语言中封装、继承、多态的特性。

  1. 类的访问修饰符:用于设定对类的访问限制,包括 public、internal 或者不写,用 internal 或者不写时代表只能在当前项目中访问类;public 则代表可以在任何项目中访问 类。
  2. 修饰符修饰符是对类本身特点的描述,包括 abstract、sealed 和 static。abstract 是抽象的意思,使用它修饰符的类不能被实例化;sealed修饰的类是密封类,不能 被继承;static修饰的类是静态类,不能被实例化。
  3. 类名:类名用于描述类的功能,因此在定义类名时最好是具有实际意义,这样方便用户理解 类中描述的内容。在同一个命名空间下类名必须是唯一的。

类的成员:在类中能定义的元素,主要包括字段、属性、方法

C#访问修饰符

1、成员的访问修饰符

类中的成员包括字段、属性、方法。每个类成员在定义时需要指定访问修饰符、修饰符。 类的访问修饰符主要有两个,即 internal 和 public,如果省略了访问修饰符,即为 internal。

类中成员的访问修饰符有 4 个,具体用法如下。

  1. public

成员可以被任何代码访问。

  1. private

成员仅能被同一个类中的代码访问,如果在类成员前未使用任何访问修饰 符,则默认为 private。

  1. internal

成员仅能被同一个项目的代码访问。

  1. protected

成员只能由类或派生类是在继承中涉及的,将在后面详细介绍。

         2、成员的修饰符

         在修饰字段时通常用两个修饰符,即readonly(只读)、static (静态的)和const

(常 量),三者不能修饰同一个成员。

使用readonly修饰字段意味着只能读取该字段的值而不能给字段赋值。

使用 static 修饰的字段是静态字段,可以直接通过类名访问该字段。

3、成员的默认值

字段在类中定义完成后,在类加载时,会自动为字段赋值,不同数据类型的字段默认值不 同, 如下表所示。

C#中的方法

  1. 方法的定义
  1. 访问修饰符 所有类成员访问修饰符都可以使用,如果省略访问修饰符,默认是 private。
  2. 修饰符 在定义方法时修饰符包括 virtual(虚拟的)abstract(抽象的)override(重写 的)static(静态的)sealed(密封的)override 是在类之间继承时使用的。
  3. 返回值类型 用于在调用方法后得到返回结果,返回值可以是任意的数据类型,如果指定了返回值类型, 必须使用 return 关键字返回一个与之类型匹配的值。如果没有指定返回值类型,必须使用 void 关键字表示没有返回值。
  4. 方法名 对方法所实现功能的描述。方法名的命名是以 Pascal 命名法为规范的。
  5. 参数列表 在方法中允许有 0 到多个参数,如果没有指定参数也要保留参数列表的小括号。参数的定义形式是“数据类型参数名”,如果使用多个参数,多个参数之间需要用逗号隔开

  1. get和set访问器

属性经常与字段连用,并提供了get访问器和 set 访问器,分别用于获取或设置字段的值。

get 访问器和 set访问器的使用与方法非常类似,可以在操作字段时根据一些规则和条件来 设置或获取字段的值。

此外,为了保证字段的安全性,还能选择省去get访问器或 set 访问器。

  1. 构造方法

创建类的对象是使用“类名 对象名 = new 类名()”的方式来实现的。

实际上,“类名()”的形式调用的是类的构造方法,也就是说构造方法的名字是与类的名称 相同的。

构造方法的定义语法形式如下:

这里构造方法的访问修饰符通常是public类型的,这样在其他类中都可以创建该类的对象。如果将访问修饰符设置成private类型的,则无法创建该类型的对象。构造方法中的参数与其他方法一样,都是0到多个参数。

构造函数的作用:

完成类的初始化工作。

4、方法的重载

概念:

在同一个作用域内,可以声明几个功能类似的同名函数。调用时根据不同的实参列表选择相应的函数。

重载的特点:

函数名相同,参数列表不同。

参数列表不同主要体现在参数个数或参数的数据类型不同。在调用重载的方法时系统是根据所传递参数的不同判断调用的是哪个方法。

         5、方法的参数拓展

         1)实参和形参

方法中的参数分为实际参数和形式参数,实际参数被称为实参,是在调用方法时传递的参数;形式参数被称为形参,是在方法定义中所写的参数。

2)值传递和引用传递

C#中参数传递的方法有两种:值传递和引用传递

值传递:

值传递是指在调用方法时将实际参数复制一份传递到方法中,这样在方法中如果对参数进行修改,将不会影响到实际参数。

对于值类型的数据,如果没有特殊说明,那么在方法调用时按照值传递的方式进行参数的传递。

引用传递:

引用传递是指在调用方法时实际参数和形式参数都指向同一个内存,这样在方法中如果对参 数进行修改,将会影响到实际参数。

前面我们讲到C#数据类型分为值类型和引用类型。 那么在方法调用时,值类型一般都是以值传递的方式,引用类型都是以引用传递的方式。

         3)ref关键字和out关键

Ref当方法定义的时候在形参前面添加ref关键字表明是以引用的方式进行传参。(参数传递 时也需要添加ref关键字) 使用场景:需要以引用的方式传递值类型参数。

拓展: 引用类型使用ref传参和不适用ref传参需要注意的地方:

a. 当引用类型不使用ref传参,在方法内部重新new一个对象后再进行操作,则该操作对实 参没有影响。

b. 当引用类型使用ref传参,在方法内部重新new一个对象后再进行操作,则相当于将实参 指向一个新的对象。

Outout关键字修饰的参数为输出参数。(参数传递时也需要添加out关键字) 使用场景:需要有多个返回值的情况。

C#中的常用类

1)Console

Console类中包含控制台输入和输出的常用方法。

2)Math

Math类主要用于一些与数字相关的计算,并提供了很多静态方法方便访问。

3)Random

Random类是一个产生伪随机数字的类。

它的构造函数有两种:

1 Randon random = New Random();

2 Randon random = New Random(Int32);

前者是根据触发那刻的系统时间做为种子,来产生一个随机数字,后者可以自己设定触发的 种子,一般都是用系统当前时间做为参数种子。

Random 类中提供的 NextNextBytes 以及 NextDouble 方法可以生成整数类型、byte 数组类型以及双精度浮点型的随机数。

常用方法如下表所示:

4)DateTime类

DataTime类用于表示时间,所表示的范围是从0001年1月1日0点到9999年12月31日24点

在DateTime类中提供了静态属性Now,用于获取当前的日期和时间。

常用方法如下表所示:

方法

描述

Date

获取实例的日期部分

Day

获取该实例所表示的日期是一个月的第几天

DayOfWeek

获取该实例所表示的日期是一周的星期几

DayOfYear

获取该实例所表示的日期是一年的第几天

Add(Timespan value)

在指定的日期实例上添加时间间隔值value

AddDays(double value)

在指定的日期实例上添加指定天数value

AddHours(double value)

在指定的日期实例上添加指定的小时数value

AddMinutes(double value)

在指定的日期实例上添加指定的分钟数 value

AddSeconds(double value)

在指定的日期实例上添加指定的秒数 value

AddMonths(int value)

在指定的日期实例上添加指定的秒数 value

AddYears(int value)

在指定的日期实例上添加指定的年份 value


http://chatgpt.dhexx.cn/article/g0i0UbuI.shtml

相关文章

C#类的定义和声明及使用

类的定义 类的成员 } 例如,以水果为例来声明一个类,代码如下:在 C# 语言中创建的任何项目都有类的存在,通过类能很好地体现面向对象语言中封装、继承、多态的特性。 简单的来说,在C#编程里,类是一种数据结…

(27)python类的定义和使用

面向对象初步 面向对象(Object oriented Programming,OOP)编程的思想主要是针对大型软件设计而来的。面向对象编程使程序的扩展性更强、可读性更好,使的编程可以像搭积木一样简单。 面向对象编程将数据和操作数据相关的方法封装…

类的认识和定义

前言 C为啥要引入类这个概念呢,以C实现栈为例说明。 typedef int STDataType; typedef struct Stack { . . . .int top; . . . .STDataType* data; . . . .int capacity; }Stack; void StackInit(Stack* ps); //栈的初始化 void StackDestory(Stack* ps); //栈的销…

Python类的定义

类的定义:我们把对象比作一个“饼干”,类就是制造这个饼干的模具。通过类定义数据类型的属性和方法,也就是说,“类将行为和状态打包在一起”。 类的结构 方法(函数)..............行为 属性(…

java类的定义

目录 一、概念二、使用1.成员变量2.成员方法3.权限修饰符4.静态方法 三、重写toString方法 一、概念 我们不能将一个事物称之为一类事物,例如一只鸟我们不能称为鸟类,但是我们需要给一类事物统称,例如大雁,麻雀,燕子&…

C++ 类的定义与使用

十二、类与对象 对象:就是我们生活中的具体事物,看得见摸得到,有一定的属性和行为或操作方式 面向对象:是一种软件的开发方法,对象所指的是计算机系统中的某一个成分。在面向对象程序设计中,对象包含两个…

4.类的定义,变量类型,方法类型

文章目录 1.类的概念1.1 如何创建一个类1.2 如何定义一个类1.2.1变量1.2.2 方法 2.对象3.类定义使用实例4.理解类和对象的关系4.1.一个java程序和类之间的关系 5.细节知识分析5.1.类与类的关系5.2.变量和变量区别5.3.方法的区别5.4.类方法和类变量的特点 1.类的概念 类java是基…

关于类的定义

类的定义 类的概念如何定义类修饰符 类的概念 1、类是把事物的数据与相关功能封装到一起,形成一种特殊的数据结构,用以表达真是事物的一种抽象;而对象则是实际存在的属该类事物的具体个体,因而也称为实例(instance&am…

python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(一)

python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(二、数据清洗及存储) 爬起疫情数据,有两个网址: 1、百度:链接 2、丁香园疫情:链接 在这两个中,丁香园的爬虫相对简单一点&#…

采用python爬虫爬取数据然后采用echarts数据可视化分析

前言:采用python爬虫爬取天气数据然后采用echarts数据可视化画图分析未来天气变化趋势 从获取数据到可视化的流程 (熟悉爬虫爬取数据然后数据可视化这个过程) 一、python爬取未来8-15天的天气数据 1、导入用到的一些python第三方库 imp…

python网络爬虫爬取数据,python全网爬取内容

大家好,小编来为大家解答以下问题,python网络爬虫爬取数据,利用python爬取数据,现在让我们一起来看看吧! 网络爬虫,就是按照一定规则自动访问互联网上的信息并把内容下载下来的程序或脚本。 在整个的Python…

Python爬虫爬取网页数据并存储(一)

Python爬虫爬取网页数据并存储(一) 环境搭建爬虫基本原理urllib库使用requests库使用正则表达式一个示例 环境搭建 1.需要事先安装anaconda(或Python3.7)和pycharm *anaconda可在中科大镜像下下载较快 2.安装中遇到的问题&#x…

【用Java爬取网页图片——爬虫爬取数据】

用Java爬取网页图片——爬虫爬取数据 1、在创建项目中导入jsoup 2、创建一个保存下载图片的路径 3、使用URL读取网页路径,jsoup读取网页内容 4、利用属性标签获取图片连接块 5、因为该路径没有http:头,用StringBuilder增加 5、完善下载路径…

爬虫爬取数据

打开爬取工具页面,使用爬虫工具列表: 开始节点 仅仅是爬虫的起点,所有流程图必须有该节点。 爬取节点 该节点用于请求HTTP/HTTPS页面或接口 请求方法:GET、POST、PUT、DELETE等方法 URL: 请求地址 延迟时间:单位是毫秒,意思是爬取之前延迟一段时间在执行抓取 超时时间:网…

手把手教会 爬虫爬取json数据

提示:本章爬取练习的url地址 发现曲谱 (yoopu.me) 前言 我们学爬虫,有时候想要的数据并不在html文本里面,而是通过js动态渲染出来的。 如果我们需要爬取此类数据的话,我们该怎么办呢? 请读者接着往下看&#xff1a…

六个步骤学会使用Python爬虫爬取数据(爬虫爬取微博实战)

用python的爬虫爬取数据真的很简单,只要掌握这六步就好,也不复杂。以前还以为爬虫很难,结果一上手,从初学到把东西爬下来,一个小时都不到就解决了。 Python爬虫六部曲 第一步:安装requests库和BeautifulS…

网络爬虫入门:网络爬虫的目的,企业获取数据的方式,可以用于做爬虫的程序语言,爬虫爬取数据的步骤

目录 爬取数据的目的: 1.获取大量数据,用于做数据分析 2.公司项目的测试数据,公司业务所需数据 企业获取数据的方式 1.公司自有数据 2.第三方数据平台购买(数据堂,贵阳大数据交易所) 3.爬虫爬取数据…

利用爬虫爬取数据集

相信大家在学习tensorflow的过程中,会想要自己动手来试试加载我们的数据集,而不再局限于从datasets上下载数据集。但是往往一个模型的训练就需要很庞大的数据集,因此写下这篇博客教大家如何用爬虫爬取图片,制作自己的数据集&#…

微信小程序实名认证接口_人脸核身接口整理

一、微信小程序实名认证接口_人脸核身接口整理 开场一个字: 悲观。目前实名接口,人脸识别接口开放度不高。“实名信息授权”已经回收。 二、人脸核身接口 1.使用条件 需要现申请通过才能使用。 目前开放的分类不多,并且还需要行业资质。 …

微信小程序—人脸识别

1.首先你要有一个可以就行人脸识别的服务器&#xff0c;然后就是上传到百度云&#xff0c;百度云人脸识别的API接口全面升级到V3版本&#xff0c;并进行开放测试 2.wxml代码 <camera device-position"{{sxt}}" flash"off" binderror"error" s…