NET学习之路(一)--C#方法
方法:
方法的作用是实现 代码的封装,重用:代码单独的块
10个例子,每个例子单独分出来作为一个代码块,Main方法中分别调用
View Code
class Program
{
//目前Main只能调用静态方法
static void Main(string[] args)
{
//调用
//Add();
//调用:可能输出,可能写入数据库
//double re = GetSquare();
//Console.WriteLine(re);
//调用带有参数的计算累加值的方法
//int result = GetTotal("10");//实参
//Console.WriteLine(result);
//调用1:半径3
//double d1 = GetArea(3, true);
//Console.WriteLine(d1);
//调用2 :直径6
//double d2 = GetArea(6,false);
//Console.WriteLine(d2);
//调用:参数作为值传递
/*int k = 12;
Console.WriteLine(k);//12
Method1(k);//值传递的方法
Console.WriteLine(k);//12
Method2(ref k);//引用传递
Console.WriteLine(k);//13*/
/*int x = 10;
int y = 99;
Swap(ref x,ref y);
Console.WriteLine(x);//99
Console.WriteLine(y);//10
int n = 7;
int n1;
int result = Method3(n, out n1);
Console.WriteLine(result);
Console.WriteLine(n1);*/
/*
//使用框架提供的带有out参数的方法
Console.WriteLine("请录入一个整数:");
string str = Console.ReadLine();
//检查录入的是不是可以被转换为整数:可以,算平方并输出;否则提示
int data;//承载如果可以转换,转换后的结果
bool isData = int.TryParse(str,out data);
if (isData)
{
int r = data * data;
Console.WriteLine(r);
}
else
Console.WriteLine("错误,请...");*/
/*int r1 = AddMethod(12, 23);
Console.WriteLine(r1);
string r2 = AddMethod("aa", "bb");
Console.WriteLine(r2);*/
/*
int n1 = 122;
int n2 = 344;
int r1 = AddMethod(n1,n2);
//字符串的拼接
Console.WriteLine(n1 + "与" + n2 + "的和为" + r1);//12与34的和为46
//利用WriteLine方法实现字符串的格式化
Console.WriteLine("{0}与{1}的和为{2}",n1,n2,r1);*/
//其他的格式化
double money = 123.54;
Console.WriteLine("账户的余额为:{0:C}", money);
Console.WriteLine("格式化小数点后的位数:{0:F4}", money);
}
//方法重载:计算加(数值加法;两个字符串,串;两个字符,字符串,。。。)
static int AddMethod(int i, int j)
{
return i + j;
}
static string AddMethod(string s1, string s2)
{
return s1 + s2;
}
//方法:参数,得到数值对于2的倍数和余数
static int Method3(int n,out int more)
{
more = n % 2;//余数
return n / 2;//倍数
}
//方法:两个参数,完成将两个参数的值互换
static void Swap(ref int n1, ref int n2)
{
int temp = n1;
n1 = n2;
n2 = temp;
}
//按照引用传递
static void Method2(ref int i)
{
i++;
}
//按照值传递
static void Method1(int i)
{
i++;
}
//pi---全局变量,类作用域
const double pi = 3.1415;//方法:计算圆的周长,支持半径或者直径
static double GetLength(double r,bool isRadius)
{
//根据形参isRadius的值得到半径
double data = isRadius ? r : r / 2;
//计算返回
double result = pi * data * 2;
return result;
}
//方法:根据传入的数据计算圆的面积,支持半径或者直径
static double GetArea(double r,bool isRadius)
{
//根据形参isRadius的值得到半径
double data = isRadius ? r : r / 2;
//计算返回
double result = pi * data * data;
return result;
}
//封装方法:可适用性
static int GetTotal(string str)//形参
{
int data = Convert.ToInt32(str);
int result = (data * (data + 1)) / 2;
return result;
}
//定义一个方法:由用户录入两个数值,计算其和,显示
static void Add()//方法的签名
{
Console.WriteLine("请录入加数1");
string str1 = Console.ReadLine();
Console.WriteLine("请录入加数2");
string str2 = Console.ReadLine();
//转换并计算,显示
double d1 = Convert.ToDouble(str1);
double d2 = Convert.ToDouble(str2);
double result = d1 + d2;
Console.WriteLine("结果是:" + result);
}
//定义一个方法:由用户录入一个数值,计算平方,返回计算结果
static double GetSquare()
{
//添加代码
double result = 21.34;
return result;
}
}
方法的使用
声明方法并调用(一个类中方法的签名必须唯一)
static void MethodName(){}
MethodName();
声明一个有返回值的方法并调用
static 数据类型 MethodName(){}
声明一个变量 = MethodName();
声明带有参数的方法
static 数据类型 MethodName(形参1,形参2){}
声明一个变量 = MethodName(实参,实参);
变量的作用域:可以使用的范围(与其声明的位置相关):先声明后使用,局限于某个作用域
声明全局变量(类中均可使用):放到方法外面,类里面
为方法传递参数:
值传递:默认情况下的传递方式,将实际参数的值拷贝一份,赋值给形参---复印
引用:解决特殊问题----ref
输出方向:返回多个值---out,比如bool canConvert = int.TryParse("1221",out result)
Ref关键字
static intAddOne(ref int x)
{
x++;
return x;
}
static void Main( )
{
int k = 6;
inty = AddOne(ref k);
Console.WriteLine(k);
Console.WriteLine(y);
}
Out关键字
static void AddOne(out int x)
{
x = 6;
x++;
}
static void Main( )
{
int k;
AddOne(out k);
Console.WriteLine(k);
}
方法的重载
方法签名:方法的名称+参数(个数、数据类型)---唯一
返回类型和参数的名称不作为判断标准
只要签名是唯一的,方法合法
签名确实唯一,但是名称重复且参数不同----方法的重载,解决不同类型的参数的问题
使用框架提供的那些重载的方法:WriteLine 有19个重载.
//方法重载示例
class OverloadingExample
{
static int Add(int a, int b)
{
return a + b;
}
static int Add(int a, int b, int c)
{
return a + b + c;
}
static void Main( )
{
Console.WriteLine(Add(1,2) + Add(1,2,3));
}
}
字符串的格式化:
{index}--占位符
{index:标志}--标志决定显示的效果--0:C 0:f4
{0:yyyy/mm/dd}
Console.WriteLine("输出为:{0:c}", 3025);
输出为:¥3,025.00

数学方法:Math.方法()
递归方法(了解):方法的内部调用方法本身----递归的规律,结束的条件
阶乘:F(n) = 1*2*3*....*n = n * n-1的阶乘=n*F(n-1)
0! = 1 1! = 1
递归实现的,效率较差,适用于解决特殊问题,大多数情况下用循环替代
//递归实现阶乘的例子
static void Main(string[] args)
{
Console.WriteLine(digui (3));
Console.Read();
}
//递归实现s的阶乘
static int digui(int s)
{
if (s < 1)
{
return 1;
}
return s * digui(s - 1);
}



浙公网安备 33010602011771号