学习C#也有一段时间了,到了颗粒归仓的时候了,下面是我的思维导图!
普通方法的建立
语法格式:
(访问修饰符)+static+返回值类型+方法名()
{
方法体
}
注意事项:
1、命名规则:方法名开头大写,参数名开头小写,参数名、变量要有意义
2、方法的调用:对于静态方法,调用有两种方法:
——直接写名字调用就行了
——类名.方法名();
3、return 可以立即退出方法;
举例:
public static void sumArray()
{
int[] numbers = new int[] { 1, 2, 4213, 123, 12 };
int sum = 0;
for(int i=0;i<numbers.Length;i++)
{
sum = sum + numbers[i];
}
Console.WriteLine("和为{0}",sum);
}
方法的调用:
格式:程序名.方法名()
举例:program.sumArray();
异常处理的方法
方法的重载:
**定义:**方法名相同,但是参数不同,参数的个数不同,类型也不同
**重载的条件:**和返回值无关,和参数的类型和个数有关,也就是说一个方法里面可以有好多参数
举例:
public static int Add(int num1,int num2)
{
return num1 + num2;
}
public static double Add(double num1,int num2)
{
return num1 + num2;
}
public static double Add(double num1,double num2)
{
return num1 + num2;
}
传参问题:out 和ref
1、out 可以向方法外面传递参数,但是必须在方法内部赋值
2、ref可以向方法里面传参,也可以往方法外部传参,但是必须在方法外部进行赋值
举例如下:
ref传参:
static void Main(string[] args)
{
int number1 = 10;
int number2 = 20;
int sum = Show(ref number1, ref number2);
Console.WriteLine("{0},{1},{2}", number1, number2, sum);
Console.ReadKey();
}
public static int Show(ref int num1,ref int num2)
{
return num1 + num2;
}
out 传参:
public static int Array(int []numbers,out int max,out int min)
{
max=int.MinValue;
min = int.MaxValue;
int sum = 0;
for(int i=0;i<numbers.Length;i++)
{
if(numbers[i]>max)
{
max = numbers[i];
}
if(numbers[i]<min)
{
min = numbers[i];
}
sum += numbers[i];
}
方法调用方法
典型代码如下:
static void Main(string[] args)
{
Console.WriteLine("请输入一个数字");
// int num = IsNumber(Console.ReadLine());
bool result = GetNumber(Console.ReadLine());
if(result)
{
Console.WriteLine("在此范围");
}
else
{
Console.WriteLine("不在此范围");
}
Console.ReadKey();
}
public static int IsNumber(string strNumber)
{
while(true)
{
try
{
int number = Convert.ToInt32(strNumber);
return number;
}
catch
{
Console.WriteLine("输入有误,请重新输入数字");
strNumber = Console.ReadLine();
}
}
}
public static bool GetNumber(string str)
{
int number = IsNumber(str);
if (number>=0&&number<=100)
{
return true;
}
else
{
return false;
}
}
字符串问题:
字符串的拼接问题:
典型例子如下:
static void Main(string[] args)
{
string[] name = { "梅西", "卡卡", "真大师", "牛魔王" };
string st = JoinString(name);
Console.WriteLine(st);
Console.ReadKey();
}
public static string JoinString(string []names)
{
string str = "";
for(int i=0;i<names.Length-1;i++)
{
str += names[i] + "|";
}
return str + names[names.Length - 1];
}
如何将字符串变成字符串数组
步骤:
1、把这个字符串变成字符串数组
2、 改变里面某一项的值
3、再把这个字符数组变成字符串
举例如下:
string text = "哈哈,小样又变帅了!";
Console.WriteLine(text.Length);
char[] chs = new char[text.Length];
for(int i=0;i<text.Length;i++)
{
chs[i] = text[i];
}
for(int i=0;i<chs.Length;i++)
{
Console.Write(chs[i]);
}
Console.ReadKey();
数组的排序问题
方法一:冒泡排序:
典型代码如下:
int[] nums = new int[] { 98, 56, 345, 123, 14, 432 };
int temp = 0;//两数交换,需要借助第三个数
for (int j = 0; j < nums.Length - 1; j++) //j为轮数
{
for(int i=0;i<nums.Length-1-j;i++)
{
if(nums[i]>nums[i+1])
{
temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
}
}
}
for(int i=0;i<nums.Length;i++)
{
Console.Write(nums[i] + "\t");
}
Console.ReadKey();
正常排序如下:
int[] nums = new int[] { 2, 32, 45, 1, 34 };
Array.Sort (nums);
for(int i=0;i<nums.Length;i++)
{
Console.Write(nums[i] + "\t");
}
Console.ReadKey();
倒着输出:
for(int i=nums.length-1;i>=0;i--)
{
Console.Write(nums[i]+"\t")
}
关于数组的问题其实还有很多,请期待我下次的博客吧!