部分类、console类、Math类
C# 部分类
在 C# 语言中提供了一个部分类,正如字面上的意思,它用于表示一个类中的一部分。
关键 字:partial。
一个类可以由多个部分类构成。
定义格式如下:
1 访问修饰符 修饰符 partial class 类名{……}
在这里,partial 即为定义部分类的关键字。
部分类主要用于当一个类中的内容较多时将类 中的内容拆分到不同的定义中,并且部分类的名称必须相同。
注意:部分类中所有的类定义都需要添加partial关键字。
举例如下:
1 /// <summary>
2 /// 用户类
3 /// </summary>
4 partial class User
5 {
6 /// <summary>
7 /// 构造函数
8 /// </summary>
9 public User(string account, string password, string tel )
10 {
11 userAccount = account;
12 userPassword = password;
13 telNumber = tel;
14 }
15
16 //账号
17 string userAccount;
18
19 //密码
20 string userPassword;
21
22 //手机号
23 string telNumber;
24 }
25
26 /// <summary>
27 /// User的部分类
28 /// </summary>
29 partial class User
30 {
31 //年龄
32 int age;
33 }
C#中的常用类
1)Console类
Console类中包含控制台输入和输出的常用方法。
方法 | 描述 |
---|---|
Write | 向控制台输出内容后不换行 |
WriteLine | 向控制台输出内容后换行 |
Read | 从控制台上读取一个字符 |
ReadLine | 从控制台上读取一行字符 |
例如:
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 Console.WriteLine("请输入学生姓名:");
6 string name = Console.ReadLine();
7 Console.WriteLine("请输入所在学校:");
8 string school = Console.ReadLine();
9 Console.WriteLine("{0}同学在{1}学习", name, school);
10 }
11 }
2)Math类 Math
类主要用于一些与数学相关的计算,并提供了很多静态方法方便访问。
方法 | 描述 |
---|---|
Abs | 取绝对值 |
Ceiling | 返回大于或等于指定的双精度浮点数的最小整数值 |
Floor | 返回小于或等于指定的双精度浮点数的最大整数值 |
Equals | 返回指定的对象实例是否相等 |
Max | 返回两个数中较大数的值 |
Min | 返回两个数中较小数的值 |
Sqrt | 返回指定数字的平方根 |
Round | 返回四舍五入后的值 |
例如:
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 Console.WriteLine("请输入第一个数:");
6 double num1 = Double.Parse(Console.ReadLine());
7 Console.WriteLine("请输入第二个数:");
8 double num2 = Double.Parse(Console.ReadLine());
9 Console.WriteLine("两个数中较大的数为{0}", Math.Max(num1, num2));
10 Console.WriteLine("两个数中较小的数为{0}", Math.Min(num1, num2));
11 }
12 }
3)Random类
Random 类是一个产生伪随机数字的类。
它的构造函数有两种:
1 Randon random = New Random();
2 Randon random = New Random(Int32);
前者是根据触发那刻的系统时间做为种子,来产生一个随机数字,后者可以自己设定触发的
种子,一般都是用系统当前时间做为参数种子。
Random 类中提供的 Next、NextBytes 以及 NextDouble 方法可以生成整数类型、byte
数组类型以及双精度浮点型的随机数。
常用方法如下表所示:
方法 | 描述 |
---|---|
Next() | 每次产生一个不同的随机正整数 |
Next(int max Value) | 产生一个比 max Value 小的正整数 |
Next(int min Value,int max Value) | 产生一个 minValue~maxValue 的正整数,但不包含 maxValue |
NextDouble() | 产生一个0.0~1.0的浮点数 |
NextBytes(byte[] buffer) | 用随机数填充指定字节数的数组 |
例如:
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 Random rd = new Random();
6 Console.WriteLine("产生一个10以内的数:{0}", rd.Next(0, 10));
7 Console.WriteLine("产生一个0到1之间的浮点数:{0}", rd.NextDouble());
8 }
9 }
4)DateTime类
DateTime 类用于表示时间,所表示的范围是从 0001 年 1 月 1 日 0 点到 9999 年 12 月
31 日 24 点。
在 DateTime 类中提供了静态属性 Now,用于获取当前的日期和时间。
常用方法如下表所示:
方法 | 描述 |
---|---|
Date | 获取实例的日期部分 |
Day | 获取该实例所表示的日期是一个月的第几天 |
DayOfWeek | 获取该实例所表示的日期是一周的星期几 |
DayOfYear | 获取该实例所表示的日期是一年的第几天 |
Add(Timespan value) | 在指定的日期实例上添加时间间隔值 value |
AddDays(double value) | 在指定的日期实例上添加指定天数 value |
AddHours(double value) | 在指定的日期实例上添加指定的小时数 value |
AddSeconds(double value) | 在指定的日期实例上添加指定的秒数 value |
AddMonths(int value) | 在指定的日期实例上添加指定的月份 value |
AddYears (int value) | 在指定的日期实例上添加指定的年份 value |
AddMinutes(double value) | 在指定的日期实例上添加指定的分钟数 value |
例如:
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 DateTime dt = DateTime.Now;
6 Console.WriteLine("当前日期为:{0}", dt);
7 Console.WriteLine("当前时本月的第{0}天", dt.Day);
8 Console.WriteLine("当前是:{0}", dt.DayOfWeek);
9 Console.WriteLine("当前是本年度第{0}天", dt.DayOfYear);
10 Console.WriteLine("30 天后的日期是{0}", dt.AddDays(30));
11
12 TimeSpan timeSpan = new TimeSpan(1, 1, 1, 1);
13 Console.WriteLine("当前时间添加1天1小时1分钟1秒之后的时间\n{0}",DateTime.N
ow.Add(timeSpan));
14 }
15 }
C#方法的递归调用
递归调用 就是方法调用自身的一种形式。
【实例】使用递归实现计算所输入数的阶乘。
例如计算 5 的阶乘,则是 54321 的结果。
1 static void Main(string[] args)
2 {
3 int num = 5;
4
5 Console.WriteLine("{0} 的阶乘为{1}", num, Factorial(num));
6
7 }
8
9 /// <summary>
10 /// 计算阶乘
11 /// </summary>
12 /// <param name="n"></param>
13 /// <returns></returns>
14 public static int Factorial(int n)
15 {
16 if (n == 0)
17 {
18 return 1;
19 }
20 return n * Factorial(n ‐ 1);
21 }