C# 属性和方法

news2024/11/24 19:12:49

本课要点:
1、属性的使用
2、方法的使用

一 数据安全问题

示例

static void Main(string[] args)
{
      Student stu = new Student();
      stu.age = -2;
}

在这里插入图片描述

二 属性

private int age; //年龄
public int Age
{
       get { return age; }
       set
       {
              if (value > 0 && value < 100)
              {
                    age = value;
              }
              else
              {
                    age = 18;
              }
       }
}

在这里插入图片描述

1 C# 中的访问修饰符

在这里插入图片描述

2 属性的特点

在这里插入图片描述

3 属性的定义

在这里插入图片描述

4 属性的使用错误

class MyClass
    {
        private string id = "";
        private string name = "";
        public string ID
        {
            get
            {
                return id;
            }
        }
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }
    }
 static void Main(string[] args)
{
       MyClass myclass = new MyClass();
       myclass.ID = "BH001";
       myclass.Name = "TM1";
       Console.WriteLine(myclass.ID + " " +         myclass.Name);
       myclass.ID = "BH002";
       myclass.Name = "TM2";
       Console.WriteLine(myclass.ID + " " + myclass.Name);

}

在这里插入图片描述

三 为什么使用方法

问题:
工资计税的方法为:低于等于3500不计税,超出3500的部分按5%缴税。

int pay; // 税前工资  
float rate = 0.05f; // 税率
float aPay;            // 税后工资
Console.WriteLine("请输入税前工资:");
pay = int.Parse(Console.ReadLine());
if (pay <= 3500)       // 低于3500不缴税
{
       aPay = pay; 
}
else                        // 高于3500 部分按税率缴税
{
       aPay = pay - (pay - 3500) * rate;
}
Console.WriteLine("税前工资{0},税后工资{1}", pay, aPay);

在这里插入图片描述

// 此方法根据税前工资计算税后工资
private float GetPay( int pay, float rate )
{
        float aPay;
        if (pay <= 3500)  // 低于3500不缴税
        {
               aPay = pay;
        }            
        else// 高于3500 部分按税率缴税
        {
               aPay = pay - (pay - 3500) * rate;                
        }
        return aPay;
}

在这里插入图片描述

1 C# 中的方法

问题:
什么是方法?使用方法有什么好处?
在这里插入图片描述

2 方法的参数类型

问题:
在这里插入图片描述

3 为什么使用ref

如何实现交换两个数的值?

static void Main(string[] args)
{
     int num1 = 98, num2 = 368; //定义两个数字
     Console.WriteLine("交换前两个数的值分别为:{0}和{1}", num1, num2);
     Swap(num1, num2);//交换两个数的值
     Console.WriteLine("交换后两个数的值分别为:{0}和{1}", num1, num2);
     Console.ReadLine();
}
// 交换两个数的方法
static void Swap(int num1, int num2)
{
     int temp;
     temp = num1;
     num1 = num2;
     num2 = temp;
}

在这里插入图片描述

4 ref参数的使用

static void Main(string[] args)
{
     int num1 = 98, num2 = 368; //定义两个数字
     Console.WriteLine("交换前两个数的值分别为:{0}和{1}", num1, num2);
     Swap(ref num1, ref num2);//交换两个数的值
     Console.WriteLine("交换后两个数的值分别为:{0}和{1}", num1, num2);
     Console.ReadLine();
}
// 交换两个数的方法
static void Swap(ref int num1, ref int num2)
{
     int temp;
     temp = num1;
     num1 = num2;
     num2 = temp;
}

在这里插入图片描述

5 两种传参方式的比较

在这里插入图片描述

6 方法的分类

在这里插入图片描述

7 为什么要重载

问题:
在这里插入图片描述
分析:
编写两个不同名字的方法,这样我们在进行调用时
要先判断是什么类型,能否不判断直接就能相加呢?

8 方法的重载

同一个类中添加几个名称相同,参数类型与返回值不同的方法。

public string Sum(string num1, string num2)
 {
            return num1 + num2;
 }

public double Sum(double num1, double num2)
 {
            return num1 + num2;
 }

调用时只要传递参数即可,无需判断类型 。

9 方法重载的方式

基于不同类型参数的重载 
class Add
{
    public string Sum(string para1, string para2)
    {}
    public int Sum(int para1, int para2)
    {}
}
相同类型不同参数个数的重载 
class Add
{
    public int Sum(int para1, int para2)
    {}
    public int Sum(int para1, int para2,int para3)
    {}
}

在这里插入图片描述

10 Main方法

Main 首字母大写
返回值可以为 void 或者 int
命令行参数是可选的

语法:

四种 Main() 方法:
static  void  Main ( string[ ] args )  {  }
static  int     Main ( string[ ] args )  {  }
static  void  Main ( ) {  }
static  int     Main ( ) {  }

11 方法的返回值错误

在这里插入图片描述

12 方法的参数个数错误

在这里插入图片描述

13 方法的重载错误

在这里插入图片描述

注意

概念回顾

在这里插入图片描述
琐碎时间阅读基础知识,详情关注微信公众号“知识代码AI”。
请添加图片描述

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

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

相关文章

JavaEE: 深入解析HTTP协议的奥秘(2)

文章目录 HTTP认识 URLURL encode 介绍 认识 "方法"(method)GETPOST其他方法 HTTP JavaEE: 深入解析HTTP协议的奥秘(1) 书接上文~ 认识 URL 平时我们俗称的"网址"其实就是说的 URL .(唯一资源定位符) URL 不是 HTTP 专属的,很多协议都会用到. 其实除了 …

软考-程序设计语言基础

一、程序设计语言概述 (一)程序设计语言的基本概念 1. 程序设计语言的目的 为了书写计算机程序而人为设计的符号语言&#xff0c;用于对计算过程进行描述、组织和推导。 2.低级语言 机器语言&#xff1a; 机器语言是计算机最原始的语言&#xff0c;由0和1的代码构成 计算机…

You must konw JS!!(超详细的javascript套餐,适合计算机专业有基础的,包含常见前端开发面试题)

1.起源 JavaScript 起源于 1995 年&#xff0c;当时它主要是为了满足网页交互的需求而被创建。它最初的设计目的是为了让网页开发者能够在网页中添加一些简单的交互效果和动态内容。在那个时期&#xff0c;网页大多是静态的&#xff0c;而 JavaScript 的出现为网页带来了新的活…

如何将数据从 AWS S3 导入到 Elastic Cloud - 第 1 部分:Elastic Serverless Forwarder

作者&#xff1a;来自 Elastic Hemendra Singh Lodhi 这是多部分博客系列的第一部分&#xff0c;探讨了将数据从 AWS S3 导入 Elastic Cloud 的不同选项。 Elasticsearch 提供了多种从 AWS S3 存储桶导入数据的选项&#xff0c;允许客户根据其特定需求和架构策略选择最合适的方…

助动词的分类及其缩略形式

助动词的分类及其缩略形式 1. 助动词 (auxiliary verb)2. 基本助动词 (primary auxiliary)2.1. 基本助动词 be、do 和 have2.2. 实义动词 be、do 和 have 3. 情态助动词 (modal auxiliary)3.1. 情态助动词取代情态动词 4. 半助动词 (semi-auxiliary)4.1. 不能与 it ... that-cl…

MoveIt2-humble----Planning Around Objects(a)

4.Pick and Place with MoveIt Task Constructor 本节教程会教你创建一个功能包&#xff0c;使用MoveIt Task Constructor规划一个抓取和放置的操作。MoveIt Task Constructor 提供了一种方式&#xff0c;去规划由多种不同子任务&#xff08;也称为阶段&#xff09;所组成的任…

详解Redis分布式锁在SpringBoot的@Async方法中没锁住的坑

背景 Redis分布式锁很有用处&#xff0c;在秒杀、抢购、订单、限流特别是一些用到异步分布式并行处理任务时频繁的用到&#xff0c;可以说它是一个BS架构的应用中最高频使用的技术之一。 但是我们经常会碰到这样的一个问题&#xff0c;那就是我们都按照标准做了但有时运行着、…

分层解耦-05.IOCDI-DI详解

一.依赖注入的注解 在我们的项目中&#xff0c;EmpService的实现类有两个&#xff0c;分别是EmpServiceA和EmpServiceB。这两个实现类都加上Service注解。我们运行程序&#xff0c;就会报错。 这是因为我们依赖注入的注解Autowired默认是按照类型来寻找bean对象的进行依赖注入…

基于Qt的速度仪表盘控件实现

本文将详细讲解一个基于Qt的速度仪表盘控件的实现过程&#xff0c;并对代码进行详细的注释说明。该控件可以模拟汽车仪表盘的外观&#xff0c;并通过滑动条动态改变速度显示。本文将从代码结构、绘制组件到实现细节进行讲解&#xff0c;帮助您理解如何使用Qt框架自定义绘制控件…

CSRF | GET 型 CSRF 漏洞攻击

关注这个漏洞的其他相关笔记&#xff1a;CSRF 漏洞 - 学习手册-CSDN博客 0x01&#xff1a;GET 型 CSRF 漏洞攻击 —— 理论篇 GET 型 CSRF 漏洞是指攻击者通过构造恶意的 HTTP GET 请求&#xff0c;利用用户的登录状态&#xff0c;在用户不知情的情况下&#xff0c;诱使浏览器…

Cortex-M3/M4/M7 芯片 Fault 分析原理与实战

目录 一、简介1、异常类型2、异常优先级3、同步异步问题4、异常具体类型 二、Fault exception registers1、Control registers1.1 CCR1.2 SHP1.3 SHCSR 2、Status and address registers2.1 HardFault Status Register——HSFR2.2 Configurable Fault Status Register——CFSR2…

《Linux从小白到高手》进阶实操篇:用户及权限有关的实际工作场景应用

List item 本篇为《Linux从小白到高手》进阶实操篇的第一篇&#xff0c;主要介绍分享一些用户及权限有关的实际工作场景应用。 场景1&#xff1a; 实际工作中你一定会碰到如下图所示的情景&#xff1a;本部门有5个组&#xff0c;分别为&#xff1a;①Root组&#xff1a;用户…

Python中对象obj类型确定最pythonic的方式——isinstance()函数

python中确定对象obj的类型&#xff0c;isinstance函数最是优雅&#xff0c;type、issubclass等函数也可以&#xff0c;但终究“曲折”。 (笔记模板由python脚本于2024年10月07日 19:42:38创建&#xff0c;本篇笔记适合喜欢python的coder翻阅) 【学习的细节是欢悦的历程】 Pyth…

Vue2电商项目(七)、订单与支付

文章目录 一、交易业务Trade1. 获取用户地址2. 获取订单信息 二、提交订单三、支付1. 获取支付信息2. 支付页面--ElementUI(1) 引入Element UI(2) 弹框支付的业务逻辑(这个逻辑其实没那么全)(3) 支付逻辑知识点小总结 四、个人中心1. 搭建二级路由2. 展示动态数据(1). 接口(2).…

【Kubernetes】常见面试题汇总(六十)

目录 131. pod 一直处于 pending 状态&#xff1f; 132. helm 安装组件失败&#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xff09;” 。 题目 69-113 属于…

企业经营异常怎么解除

经营异常是怎么回事&#xff1f;是什么意思&#xff1f;了解异常原因&#xff1a;我们到所属工商营业执照异常的具体原因。原因可能包括未按时提交年报、未履行即时信息公示义务、公示信息隐瞒真实情况或弄xu作jia、失联等。纠正违规行为&#xff1a;查到了异常原因&#xff0c…

洛谷P5723、P5728、P1428、P1319 Python解析

P5723 完整代码 def is_prime(y):if y < 2:return Falsefor i in range(2, int(y**0.5) 1):if y % i 0:return Falsereturn Truen int(input()) sum_primes 0 x 0if n < 2:print("0") elif n 2:print("2\n1") else:for i in range(2, n 1):i…

计数原理与组合 - 离散数学系列(三)

目录 1. 计数原理的基本概念 加法原理&#xff08;Rule of Sum&#xff09; 乘法原理&#xff08;Rule of Product&#xff09; 2. 排列与组合 排列&#xff08;Permutation&#xff09; 组合&#xff08;Combination&#xff09; 日常生活中的例子 3. 二项式定理 4. 实…

Mysql锁机制解读(敲详细)

目录 锁的概念 全局锁 表级锁 表锁 元数据锁 意向锁 锁的概念 全局锁 表级锁 表锁 元数据锁 主要是对未提交事务&#xff0c;修改表结构造成表结构混乱&#xff0c;进行控制。 在不涉及表结构变化的情况下,元素锁可以忽略。 意向锁 避免有行级锁影响加表级锁&#xff0…

Mysql(六) --- 聚合函数,分组和联合查询

文章目录 前言1.聚合函数1.1.常用的函数1.2.COUNT()1.3.SUM()1.4.AVG()1.5.MIN()、MAX() 2.GROUP BY 分组查询2.1.语法2.2.示例2.3.HAVING 子句 3.联合查询3.1.为什么要进行联合查询3.2.那么是如何进行联合查询的3.3.示例&#xff1a;一个完整的联合查询的过程3.4.内连接3.5.外…