1.属性 没()
属性是一种用于访问对象或类的特性的成员,它可以表示字体的大小、窗体的标题和客户的名称等内容。
自定义属性在类中是通过以下方式声明的,指定属性的访问级别,后面是属性的类型,接下来是属性的名称,然后是声明get访问器和(或)set访问器的代码模块,其他语法格式如下:
访问修饰符 数据类型 属性名
{
get {return 变量名;}
set {变量名=value;}
}
public:不限制对该属性的访问
protected:只能从其所在类和所在的子类进行访问
internal:只有其所在类才能访问
private:私有访问修饰符,只能在其声明类中使用
属性的使用
对象名.属性名
2.方法 有()
方法是一种用于实现可以由对象或类执行的计算或操作的成员。
方法声明可以包含一组特性和private、public、protected、internal这4个访问修饰符的任何一个有效组合,还可以包含new、static、virtual、override、sealed、abstract、extern等修饰符。
该声明包含一个有效的访问修饰符组合。
该声明中所包含的修饰符彼此各不相同。
该声明最多包含下列修饰符中的一个:static、virtual、override
该声明最多包含下列修饰符中的一个:new、override
如果该声明包含abstract修饰符,则该声明不包含下列任何修饰符:static、virtual、sealed、extern。
如果该声明包含private修饰符,则该声明不包含下列任何修饰符:virtual、override、abstract。
如果该声明包含sealed修饰符,则该声明还包含override修饰符。
方法的声明的返回值类型指定了由该方法计算和返回值的类型,如果该方法并不返回值,则其返回类型为void。
例:声明一个public类型的无返回值方法method()
public void methed()
{
Console.Write(“方法声明”);
}
例:编写一个计算器,要求在控制台中输入两个数以及数学符号,通过调用方法计算相应的结果。
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入第一个数:");
double a = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入第二个数:");
double b = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入数学符号(+、-、*、/):");
char c = Convert.ToChar(Console.ReadLine());
double result;
switch (c)
{
case '+':
result = Add(a,b);
break;
case '-':
result = Sub(a, b);
break;
case '*':
result = Mul(a, b);
break;
case '/':
if (b != 0)
{
result = Div(a, b);
}
else
{
Console.WriteLine("除数不能为0");
return;
}
break;
default:
Console.WriteLine("无效数学符号");
return;
}
Console.WriteLine("结果是:"+result);
}
static double Add(double num1, double num2)
{
return num1 + num2;
}
static double Sub(double num1, double num2)
{
return num1 - num2;
}
static double Mul(double num1, double num2)
{
return num1 * num2;
}
static double Div(double num1, double num2)
{
return num1 / num2;
}
}
3.方法的参数类型
①params参数
用来指定在参数数目可变时采用的方法参数,params参数必须是一维数组
例:
static void UseParams(params string[] list)
{
for(int i=0;i<list.Length;i++)
{
Console.WriteLine(list[i]);
}
}
static void Main()
{
string[] strName = new string[5]{“我”, “是”, “中”, “国”, “人”};
UseParams(strName);
Console.Read();
}
②ref参数
使方法参数按引用传递,其效果是当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
例:
public static void Methed(ref int i)
{
i=44;
}
public static void Main()
{
int val=0;
Method(ref val);
Console.WriteLine(val); //输出为44
Console.Read();
}
③out参数
用来定义输出参数,它会导致参数通过引用来传递,与ref的不同之处是,ref要求变量在传递之前进行初始化,而out关键字定义的参数不用进行初始化即可使用。
public static void Methed(out int i)
{
i=44;
}
public static void Main()
{
int val;
Method(out val);
Console.WriteLine(val); //输出为44
Console.Read();
}
4.方法的分类
①静态方法
方法声明中含有static修饰符
不对特定实例进行操作,调用时,需要直接使用类名进行调用
public static int Add(int x, int y)
{
return x+y;
}
static void Main(string[] args)
{
Console.WriteLine(Program.Add(2,3)); //5
}
②非静态方法
没有在方法声明中含有static修饰符
调用时,需要使用类的实例(对象)进行调用
例:
public int Add(int x, int y)
{
return x+y;
}
static void Main(string[] args)
{
Program program = new Program();
Console.WriteLine(Program.Add(2,3)); //5
}
5.方法的重载
指方法名相同,但是参数的数据类型、个数或顺序不同的方法。只要类中有两个以上的同名方法,但是使用的参数类型、个数或顺序不同,调用时,编译器即可判读在那种情况下调用哪种方法。
5.Main()方法
Main()方法是程序的一个入口点,程序将在此处创建对象和调用其他方法,一个C#程序中只能有一个入口点(只能有一个Main方法)
Main()方法默认访问级别为private
Main()方法使用时需注意:
þMain()方法是一个程序的入口点,程序控制在该方法中开始和结束
þMain()方法在类或结构的内部声明,它必须为静态方法,而且不应该为公共方法
þMain()方法可以具有void或int返回类型
þ声明Main()方法时既可以使用参数,也可以不使用参数
þ参数可以作为从零开始索引的命令行参数来读取