快捷设置字段的访问方式,只读或只写或可读可写,就可以使用属性,或称属性访问器。
//可读可写
private string name;
public string Name{
set{
name = value;
}
get{
return name;
}
}
value被认为是写入的值
set访问器用于写入字段,如属性内没有set访问器,则认为是不可写的
get访问器用于读取字段,如属性内没有get访问器,则认为是不可读的
//只写
private string name;
public string Name{
set{
name = value;
}
}
//只读
private string name;
public string Name{
get{
return name;
}
}
也可以用private标记外界是否可以访问,从而设置外界只读,外界只写,后期也可以加入protected
//外界只写
private string name;
public string Name{
private set{
name = value;
}
get{
return name;
}
}
//外界只读
private string name;
public string Name{
set{
name = value;
}
private get{
return name;
}
}
属性的快捷写法
public int age{get;set;}
这种写法可以先前不定义字段,因为编译器会自动帮你生成一个字段,例如 _age
方法参数
public static void Swap(int x,int y)
{
int temp = x;
x = y;
y = temp;
}
MathTool myMath = new MathTool();
int a = 60;
int b = 100;
myMath.Swap(a,b);
//输出结果是 60,100
//int x,int y是形式参数,而a和b是实际参数
引用参数ref
如何达到引用类型参数的效果
public void Swap(ref int x,ref int y){
int temp = x;
x = y;
y = temp;
}
myMath(ref a,ref b);
//注意:引用参数的实参必须是已经初始化过的
输出参数out
public void Cal(int x,int y,out int a,out int b){
a = x + y;
b = x - y;
}
myMath(num1,num2,out result1,out result2);
//注意:输出参数的实参必须是已经赋过值的
数组参数params
public void sum(params int[] a){
int result = 0;
foreach(int x,int a){
result += x;
}
Console.WriteLine("结果为:" + result);
}
myMath.sum(1,2,3,4,5,5);
//注意,数组参数只能使用一次,而且要放到参数列表最后
默认参数值
public int GetYourGrade(int yourAge, int jumpCount = 0){
int grade = yourAge - 6 + jumpCount;
grade = grade > 0 && grade < 13 ? grade : -1;
return grade;
}
变量的作用域