C#基础|对象属性Property基础使用,业务特性

哈喽,你好,我是雷工。

探究OOP中属性的奥秘

认识类的属性(Property)

01 属性的使用

作用:在面向对象(OOP)中主要用来封装数据。
要求:一般采用Pascal命名法(首字母要大写),数据类型和字段要一致,使用public修饰。

02 属性的定义

C#2.0时代标准属性的基本形式:

private int courseld;//返回四有字段的值
public int Courseld
{
    get{return courseld;}//返回四有字段的值
    set{courseld=value;}//通过value给私有字段赋值
}

C#3.0时代,对标准属性做了简化(以后,标准属性,都可以按下方形式):

public int Courseld{get;set;}

C#4.0时代,增加属性表达式(但不常用)

private int unitPrice=4000public int UnitPrice{get=>unitPrice;set=>unitPrice=value;}

//C#4.0时代以后,可以直接赋值
public string Type{get;set;}=“雷工笔记”;
private DateTime FirstDate{get;set;}//首发时间

03 对象属性Property业务特性

在属性get和set方法中添加业务逻辑

代码示例:

private int courseld=0public int Courseld
{
    get{return courseld;}
    set
    {
        ifvalue<0)
            courseld=0;
        else
            courseld=value;
    }
}

在get和set方法中可以添加任何我们需要的业务逻辑,从而有效避免非法数据。

04 属性样例

样例代码:
添加个Course1类,代码如下:

 //C#2.0时代标准属性;
        private int courseId;
        public int CourseId
        {
            get { return courseId; }
            set 
            {
                if (value < 0)
                    courseId = 100;
                else
                    courseId = value;
            }
        }
        //C#3.0时代对标准属性做了简化(以后,标准属性,都可以按下方写)
        public string CourseName { get; set; }
        //C#4.0时代,增加属性表达式
        public int UnitPrice { get; set; } = 189;
        public string ShowCourseInfo()
        {
            return $"账号名称:{CourseName},账号编号:{CourseId},原创数量:{UnitPrice}";
        }
      
    }
    class TestClass1
    {
        public void Dowork1()
        {
            Course1 course = new Course1();
            course.CourseId = -100;
            course.CourseName = "雷工笔记";
            string info = course.ShowCourseInfo();
            Console.WriteLine(info);
        }
    }

Program.cs中代码为:

 static void Main(string[] args)
        {
            TestClass1 testClass1 = new TestClass1();
            testClass1.Dowork1();
            Console.ReadLine();
        }

代码运行结果为:
在这里插入图片描述

05 后记

日拱一卒,每天学习一点点,不断更新自己的知识结构,只要学了就是积累,就能更好地应对未来未知的挑战。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决Linux CentOS 7安装了vim编辑器却vim编辑器不起作用、无任何反应

文章目录 前言一、解决vim不起作用&#xff08;卸载重新安装&#xff09;1.重新安装vim2.测试vim是否能正常使用 二、解决vim: error while loading shared libraries: /lib64/libgpm.so.2: file too short报错三、解决vim编辑器不能使用方向键和退格键问题 remove vim-common …

QT绘制。矩形A绕点B旋转。要求B点与矩形的角相连的直线,始终保持最短

矩形A绕点B旋转。要求B点与矩形的角相连的直线&#xff0c;始终保持最短 已知矩形4个角的坐标&#xff08;H0,H1,H2,H3&#xff09;&#xff0c;B点的坐标. 思路&#xff1a; 判断矩形的位置&#xff0c;在B点的左上&#xff0c;左下&#xff0c;右上&#xff0c;右下 怎么判断…

ubuntu 使用conda 创建虚拟环境总是报HTTP错误,转换多个镜像源之后仍报错

最近在使用Ubuntu conda创建虚拟环境时&#xff0c;总是报Http错误&#xff0c;如下图所示&#xff1a; 开始&#xff0c;我以为是conda 镜像源的问题&#xff0c;但是尝试了好几个镜像源都不行&#xff0c;还是报各种各样的HTTP错误。后来查阅很多&#xff0c;总算解决了。解…

简化图卷积 笔记

1 Title Simplifying Graph Convolutional Networks&#xff08;Felix Wu、Tianyi Zhang、Amauri Holanda de、 Souza Jr、Christopher Fifty、Tao Yu、Kilian Q. Weinberger&#xff09;【ICML 2019】 2 Conclusion This paper proposes a simplified graph convolutional m…

栈和队列-介绍与实现(超级!!!详解-C语言)

目录 栈 栈的介绍 栈的概念 栈的结构 栈的实现 初始化栈 StackInit 销毁栈 StackDestroy 入栈 StackPush 出栈 StackPop 获取栈顶元素 StackTop 检查栈是否为空 StackEmpty 获取栈中有效元素个数 StackSize 队列 队列的介绍 队列的概念 队列的结构 队列的应用 队列的实现 …

上位机图像处理和嵌入式模块部署(树莓派4b用skynet实现进程通信)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们说过&#xff0c;在工业系统上面一般都是使用多进程来代替多线程。这后面&#xff0c;主要的原因还是基于安全的考虑。毕竟一个系统里面&a…

吴恩达机器学习笔记:第 8 周-13 聚类(Clustering)13.3-13.5

目录 第 8 周 13、 聚类(Clustering)13.3 优化目标13.4 随机初始化 第 8 周 13、 聚类(Clustering) 13.3 优化目标 K-均值最小化问题&#xff0c;是要最小化所有的数据点与其所关联的聚类中心点之间的距离之和&#xff0c;因此 K-均值的代价函数&#xff08;又称畸变函数 Dis…

如何从架构层面降低公有云多可用区同时故障的概率

阿里云和腾讯云都曾出现过因一个组件故障而导致所有可用区同时瘫痪的情况。本文将探讨如何从架构设计的角度减小故障域&#xff0c;在故障发生时最小化业务损失&#xff0c;并以 Sealos 的稳定性实践为例&#xff0c;分享经验教训。 抛弃主从&#xff0c;拥抱点对点架构 从腾…

如何安全高效地进行网点文件下发?

随着IT技术的飞速发展&#xff0c;以银行为代表的企业数字化技术转型带来了大量的电子化文档传输需求。文件传输数量呈几何级数增长&#xff0c;传统集中式文件传输模式在爆炸式的增长需求下&#xff0c;银行网点文件下发的效率、可靠性、安全性等方面&#xff0c;都需要重点关…

Spring Boot:Web应用开发之增删改查的实现

Spring Boot 前言实现增删改查功能 前言 增删改查功能作为 Web 应用中的基础且重要的组成部分&#xff0c;是基本的数据库操作&#xff0c;也是实现业务逻辑和功能的关键要素。下面简单介绍使用 Spring Boot 实现增删改查的功能。 实现增删改查功能 在上一章 Spring Boot&am…

jvm(JVM快速入门、stack栈、堆、GC垃圾回收、Arthas)

文章目录 1. JVM快速入门1.1. 结构图1.2. 类加载器ClassLoader1.3. 执行引擎Execution Engine1.4. 本地接口Native Interface1.5. Native Method Stack1.6. PC寄存器(程序计数器)1.7. Method Area方法区 2. stack栈3. 堆3.1. 堆体系概述3.1.1. 新生区3.1.2. 老年代3.1.3. 永久代…

分类预测 | Matlab实现SCSO-SVM沙猫群优化算法优化支持向量机多特征分类预测

分类预测 | Matlab实现SCSO-SVM沙猫群优化算法优化支持向量机多特征分类预测 目录 分类预测 | Matlab实现SCSO-SVM沙猫群优化算法优化支持向量机多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现SCSO-SVM沙猫群优化算法优化支持向量机多特征分类…

小程序AI智能名片商城系统直连:打造用户与企业无缝对接的新时代!

在高度不确定性的商业环境中&#xff0c;企业如何快速响应市场变化&#xff0c;实现与用户的零距离接触&#xff1f;答案就是——小程序AI智能名片商城系统直连&#xff01;这一创新工具不仅为企业打开了与用户直接连接的大门&#xff0c;更为企业提供了持续收集用户反馈、快速…

AI图书推荐:如何用ChatGPT和Python进行数据可视化

《如何用ChatGPT和Python进行数据可视化》的原版英文图书标题&#xff1a;Python 3 Data Visualization Using ChatGPT - GPT-4 &#xff0c;作者是 Oswald Campesato &#xff0c;2023年出版 本书旨在向读者展示Python 3编程的概念和数据可视化的艺术。它还探讨了使用ChatGPT/…

vuetify3.0+tailwindcss+vite最新框架

1、根据vuetify官网下载项目 安装vuetify项目 2、根据tailwindcss官网添加依赖 添加tailwindcss依赖 3、 配置main.ts // main.ts import "./style.css"4、使用 <template><h1 class"text-3xl font-bold underline">Hello world!</…

SpringBoot学习之Kafka下载安装和启动【Windows版本】(三十四)

一、配置Java环境变量 打开CMD输入java -version检查java环境变量是否配置正确,如果配置正确在CMD窗口输入java -version应该输出如下: ​ 怎么配置Java环境变量这里我就不赘叙了,网上教程很多,请读者自行搜索操作。 二、下载Kafka 1、Kafka官网地址:Apache Kafka,…

C++进阶--异常

C语言传统的处理方式 终止程序&#xff1a;在发生错误时直接终止程序的运行&#xff0c;可以通过assert宏来进行实现。如assert(condition)&#xff0c;其中condition不满足要求时&#xff0c;将会使程序立刻停止执行&#xff0c;并输出相关错误信息。这种方式的确定是用户很难…

Golang基础3-函数、nil相关

函数 需要声明原型支持不定参数 func sum(numbers ...int)int支持返回多值支持递归支持命名返回参数 // 命名返回参数 func add(a, b int) (sum int) {sum a breturn // 这里不需要显式地写出返回值&#xff0c;因为已经在函数签名中声明了命名返回参数 } 支持匿名函数、闭包…

Jackson 2.x 系列【30】Spring Boot 集成之数据脱敏

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 概述2. 实现思路3. 案例演示3.1 脱敏规则3.2 自…

图像处理之Retinex算法(C++)

图像处理之Retinex算法&#xff08;C&#xff09; 文章目录 图像处理之Retinex算法&#xff08;C&#xff09;前言一、单尺度Retinex&#xff08;SSR&#xff09;1.原理2.代码实现3.结果展示 二、多尺度Retinex&#xff08;MSR&#xff09;1.原理2.代码实现3.结果展示 三、带色…