C#,入门教程(15)——类(class)的基础知识

上一篇:

C#,入门教程(14)——字符串与其他数据类型的转换icon-default.png?t=N7T8https://blog.csdn.net/beijinghorn/article/details/124004562

物以类聚,凡物必类。

类的使用,须遵循几个简单的原则:

(1)能类则类,留有余地。

(2)凡数据体及其集合,必写为类;

(3)凡类,必独立文件;

一、类之定义

类class实际上可以理解为“复合信息”。

class 的复合性,就是指class既包括数据,也包括对数据的处理方法(算法)。

类的定义语法:

访问修饰词(public/private) 修饰符(static/abstract/sealed) class 类名字
{// 字段(或称为属性,存储数据)访问修饰词(public/private) 修饰符(static) 数据类型(如:int) 属性名 { get; set; } = 初值;// 函数(或称为方法,处理数据)访问修饰词(public/private) 修饰符(static) 数据类型(如:int) 函数名(参数列表){;}
}

class的实例

public class PersonInfo
{/// <summary>/// 编码/// </summary>public int Id { get; set; } = 0;/// <summary>/// 姓名/// </summary>public string Name { get; set; } = "";/// <summary>/// 姓名的小写/// </summary>/// <returns></returns>public string LowName(){return Name.ToLower();}/// <summary>/// 重载ToString方法/// </summary>/// <returns></returns>public override string ToString(){//return base.ToString();return Id + ":" + Name;}
}

二、类的属性(值)

传统的属性定义,放弃!

// 不好的写法!坚决放弃!
private int _Id = 0;
public int Id
{get {return _Id;}set{_Id = value;}
}

好的写法!

/// <summary>
/// 节点的序号,在数组中的位置
/// </summary>
public int Id { get; set; } = 0;

三、类的注释

1、概要注释summary

C# 与 Visual Studio 的概要 XML 注释的完美结合是软件工程的伟大创举,大大提高了应用持续的开发效率。summary 很重要!这是工程应用 的必需品!

(1)summary注释信息的自动创建

        自动添加 summary 的方法(属性、函数一样)。

        属性的summary相对简单。函数的summary将自动添加 参数名、返回值等。

/// <summary>
/// 按奖项简称(ssq)查询奖项信息
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static GameInfo FindByName(string name)
{if (hash_name[name.ToLower()] != null){return (GameInfo)hash_name[name.ToLower()];}return new GameInfo();
}

(2)summary 的作用

        a、编写持续 鼠标停留 在 类、函数、属性的上面时,自动显示这些注释信息。

        者对于阅读、理解与使用相关程序极为便利!

        b、在 类、函数、属性 上面自动显示被使用的次数;点击可以看到使用场合的基本信息!

        真是天才设计!

2、get ; set; 很重要!

高效率开发的手段!

可以编写单独的 get  与 set  方法:

public int Id
{set { Id = value + 1000000; }get { return Id; }
}

主要用于输入数据的检查等。

四、类的方法(函数)

自从有了高级编程语言,函数就如同“砖块之于建筑”。

类内的,主要用于处理类属性(字段)数据的函数Function,也称为方法Method。

五、类的应用

你可以简单地把类看成是一种数据类型。

// 定义
public class MyClass
{public int Id { get; set; } = 0;public string Name { get; set; } = "";
}// 使用
MyClass oneMember = new MyClass();
// 数组
MyClass[] arrayofMember = new MyClass[10];
// 列表
List<MyClass> listMember = new List<MyClass>();

而类的每个实例(实例就是new 之后创建的类一个样本!)都拥有类定义的全部可访问属性、方法。

记得 new 哦!

下一篇:

C#,入门教程(16)——可变数据类型(var)的基础知识与使用禁忌icon-default.png?t=N7T8https://blog.csdn.net/beijinghorn/article/details/124032216

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/614371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统学习Python——警告信息的控制模块warnings:测试警告

分类目录&#xff1a;《系统学习Python》总目录 要测试由代码引发的警告&#xff0c;我们可以采用catch_warnings上下文管理器。有了它&#xff0c;就可以临时改变警告过滤器以方便测试。例如&#xff0c;以下代码可捕获所有的警告以便查看&#xff1a; import warningsdef fx…

使用 Ant Design Pro 的图表(展示cpu、内存、硬盘)

文章目录 使用 Ant Design Pro 的图表&#xff08;展示cpu、内存、硬盘&#xff09;一、Ant Design Charts 图表二、快速上手三、ant design chart 图表类型StatisticCard 指标卡结合 Ant Design Charts 图表库丰富数值内容&#xff0c;满足大多数数值展示的场景什么是水波图&a…

鸿蒙原生应用再添新丁!万达 入局鸿蒙

鸿蒙原生应用再添新丁&#xff01;万达 入局鸿蒙 来自 HarmonyOS 微博1月11日消息&#xff0c;#万达酒店及度假村启动鸿蒙原生应用及元服务开发# 作为具有中国特色的国牌服务酒店标杆之一&#xff0c;万达酒店及度假村Wanda 将带来全新的服务和交互方式&#xff0c;一步获取“…

网络之路28:二层链路聚合

正文共&#xff1a;1666 字 14 图&#xff0c;预估阅读时间&#xff1a;2 分钟 目录 网络之路第一章&#xff1a;Windows系统中的网络 0、序言 1、Windows系统中的网络1.1、桌面中的网卡1.2、命令行中的网卡1.3、路由表1.4、家用路由器 网络之路第二章&#xff1a;认识企业设备…

计算机的中断

将用户态转换为内核态 系统调用&#xff1a;应用程序向OS发出服务请求异常&#xff1a;不良的应用程序的非法指令中断&#xff1a;来源于外部设备&#xff0c;即不同的硬件设备的计时器和网络中断&#xff0c;其对应用程序是透明的 应用调用外设 应用——>OS——>外设…

微信小程序如何使用天地图的逆地理编码api

本文只介绍如何使用天地图api&#xff0c;如若要显示天地图&#xff0c;使用 web-view 天地图逆地理编码api 1、使用wx.request 发送请求 getLocation() {wx.getLocation({type: gcj02,success: (res) > {// 调用天地图逆地理编码apithis.initTianDiMap(res.longitude, re…

代理IP的计费方式有哪些?

代理IP是网络爬虫、数据分析、电商运营等网络活动的必备工具&#xff0c;可以从优质的代理IP提供商中购买&#xff0c;那么代理 IP 服务的付费模式主要有哪些呢&#xff1f; 1、按量计费 按量计费是一种按照实际使用量来收费的方式。一般来说&#xff0c;这种计费方式的单价会…

华为OD机试真题-字符串拼接-2023年OD统一考试(C卷)

题目描述: 给定M(0<M<=30)个字符(a-z),从中取出任意字符(每个字符只能用一次)拼接成长度为N(0<N<=5)的字符串,要求相同的字符不能相邻,计算出给定的字符列表能拼接出多少种满足条件的字符串,输入非法或者无法拼接出满足条件的字符串则返回0。 输入描述: …

【AI】ObjectCenteredSensing

1. 物体检测 .1. 流体 D. V. Q. Rodrigues, D. Rodriguez and C. Li, “Liquid Aerosol Detection Based on Sub-THz Portable Doppler Radars,” 2020 IEEE Asia-Pacific Microwave Conference (APMC), 2020, pp. 504-506, doi: 10.1109/APMC47863.2020.9331483. [pdf] Bala …

Backtrader 文档学习-Strategy with Signals

Backtrader 文档学习-Strategy with Signals backtrader可以不通过重写策略的方式触发交易&#xff0c;尽管重写策略是首选通用的方式。 下面介绍通过使用信号也是可以实现交易触发的。 1.定义signal import backtrader as btdata bt.feeds.OneOfTheFeeds(datanamemydatana…

力扣_数组26—合并两个有序数组

题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&#xff0c;合并…

14. C++ malloccallocrecalloc

一、malloc函数 谈到malloc函数相信学过c语言的人都很熟悉&#xff0c;但是malloc底层到底做了什么又有多少人知道。 1.1 关于malloc相关的几个函数 可以这样认为&#xff08;window下&#xff09;原型&#xff1a; extern void *malloc(unsigned int num_bytes);如果分配成…

怎么用 Excel 做出专业的 project 甘特图?10个步骤和60个模板

使用Excel来创建Project甘特图的步骤包括&#xff1a;1、基本设置和布局调整、2、数据输入和时间线配置、3、任务依赖性和进度跟踪、4、视觉效果优化、5、数据更新和维护、6、模板保存和共享。尤其突出基本设置和布局调整&#xff0c;它是构建一个清晰、有效的甘特图的基础。 甘…

基于龙格库塔算法的SIR病毒扩散预测matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于龙格库塔算法的SIR病毒扩散预测,通过龙格库塔算法求解传染病模型的微分方程。输出易受感染人群数量曲线&#xff0c;感染人群数量曲线&#xff0c;康复人群数…

CAS-ABA问题编码实战

多线程情况下演示AtomicStampedReference解决ABA问题 package com.nanjing.gulimall.zhouyimo.test;import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicStampedReference;/*** @author zho…

如何使用自定义注解

1、自定义注解需要用到那些元注解 1、Retention 2、Target 3、Documented 4、Inherited 2、元注解解释说明 Retention&#xff1a;表示需要在什么级别保存该注释消息&#xff0c;可选参数如下&#xff1a;&#xff08;RetentionPoicy&#xff09; RetentionPolicy.SOURCE&…

nextjs + ahooks 报错 Cannot use import statement outside a module

在 nextjs 中使用 ahooks 时&#xff0c;报错 SyntaxError: Cannot use import statement outside a module&#xff0c;如下图所示&#xff1a; 解决方案 transpilePackages 官网介绍 Next.js can automatically transpile and bundle dependencies from local packages (lik…

【Flutter 开发实战】Dart 基础篇:常见的数据类型

Dart 支持许多数据类型&#xff0c;包括我们常见的 Numbers&#xff08;数值类型&#xff09;、Strings&#xff08;字符串类型&#xff09;、Booleans&#xff08;布尔类型&#xff09;&#xff0c;也支持一些包括 Collections&#xff08;集合类型&#xff09;、Records&…

idea编译报错(Maven项目)

idea编译报错 找不到符号 第一步&#xff1a;开启注解处理器 第二步&#xff1a;清理MVN&#xff0c;package并重新编译 第三步&#xff1a;重新导入项目&#xff1a;