本课要点:
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”。