UNITY零基础学习 month 1 day11
C#语言基础
方法
各种语言都有方法的概念,有的语言称其为函数或者过程
方法就是对一系列语句的命名,表示一个功能或者行为
使用方法可以提高代码的可重用性和可维护性(代码层次结构更清晰)
语法:
方法名称首字母大写
//定义方法
[访问修饰符] [可选修饰符] 返回类型 方法名称(形式参数列表)
{
//方法体
return 结果;
}
//调用方法:
方法名称(实际参数);
返回值:功能的结果 方法定义者 告诉 方法调用者 的结果
void:没有返回值
如果返回值类型是int或其他,必须返回与返回值兼容的数据类型
当方法被调用,内部代码执行到return后,下面的代码将不会被执行
“并非所有的代码路径都有返回值”——》方法体中缺少return关键字
实际参数与形式参数 一一对应(类型、顺序、个数)
学会调用别人提供的方法:
- 看名字猜,看描述
- 看参数(看类型、名称、描述)
- 看返回值
- 测试
练习
通过查看描述来试着使用以下几个方法:
string str = "hello";
str.Insert
str.IndexOf
str.Remove
str.Replace
str.StartsWith
str.Contains
练习:做一个年历,和电脑的自带日历格式一样
要求:
- 显示一整年的月历,也即调用12遍显示月历
- 在控制台中显示月历的方法
- 显示表头 Console.WriteLine(“日\t一\t二\t…”);
- 计算当月1日星期数,输出空白(\t)
- 计算当月天数,输入
- 每逢周六换行
- 根据年月日,计算星期数
- 计算指定月份的天数
- 判断闰年的方法
2月闰年29天,平年28天
年份能被4整除,但是不能被100整除
年份能被400整除
static void Main()
{
Console.WriteLine("请输入一个年份\n");
int year = int.Parse(Console.ReadLine());
PrintYearCalendar(year);
}
private static void canledar(int year,int month)
{
//显示表头
Console.WriteLine("{0}年{1}月", year, month);
Console.WriteLine("日\t一\t二\t三\t四\t五\t六\t");
//根据每月第一天的星期数,显示空白
int week = GetWeekByDay(year, month, 1);
for(int i = 0; i < week; i++)
{
Console.Write("\t");
}
//根据当月总天数,显示日
int days = monthDays(year, month);
for(int i = 1; i <= days; i++)
{
Console.Write(i + "\t");
//每逢周六换行
if (GetWeekByDay(year, month, i) == 6)
Console.WriteLine("\n");
}
Console.WriteLine();
}
/// <summary>
///
/// </summary>
/// <param name="year"></param>
/// <param name="month"></param>
/// <param name="day"></param>
/// <returns></returns>
private static int GetWeekByDay(int year,int month ,int day)
{
DateTime dt = new DateTime(year, month, day);
return (int)dt.DayOfWeek;
}
private static int monthDays(int month,int year)
{
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
default:
return isLeapYear(year) ? 29 : 28;
}
}
private static bool isLeapYear(int year)
{
return (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0));
}
private static void PrintYearCalendar(int year)
{
for(int i = 1; i <= 12; i++)
{
canledar(year, i);
}
}