C# 属性和方法

本课要点:
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”。
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值