C#声明方法,不参数数目时
536
2022-08-19
C# 基础知识系列- 13 常见类库介绍(一)(曹海涛)
0. 前言
每篇一个前言,介绍一下这一篇的内容。之前的内容都是针对某些知识点进行的介绍,这篇内容介绍一下实际开发中常用的一些类和命名空间。这一篇是个连续剧,大概有个三四集。嗯,就是这样。
1. System 命名空间
System空间,是C#的基础命名空间,里面定义了常用值和数据类型以及各种类型的基类,当然也包括了很多C#程序运行中用到类,具体可以访问微软的官方API说明。这里简单介绍一下 我们在开发中最常用到的几个类。
1.1 Console
Console 控制台类,表示一个控制台应用程序的标准输入流、输出流和错误流。这是微软官方文档给的内容。实际上,Console类在一些其他类型的项目中也可以使用。因为Console类是程序与终端的交互,所以当程序持有一个终端的时候,该类就可以正确输出内容。
照例,我们先看一下它的声明:public static class Console 。可知这是一个静态类,需要明确一个概念:
在C#甚至大多数编程语言(支持静态类)中,静态类不可被继承,而且静态类的方法都是工具方法;
静态类没有构造方法,也不能构造对象;
静态类里的方法都是静态方法
访问一个类的静态方法需要通过类名.方法名来访问
那么我们可以使用:Console.方法名来调用Console的方法。
我们来看看Console在开发中常用的方法有哪些:
当然,Console类并不是只有这些内容,只是这些是我们最常接触的方法。
1.2 Math
C#中的数学工具类,为三角函数、对数函数和其他通用数学函数提供常数和静态方法。这个类也是一个静态类,当然这不会影响我们对它的好奇。
来,让我们一起看看里面有些什么方法吧。
public static T Abs (
public static double Acos (double d);//返回余弦值为指定数字的角度。
public static double Acosh (double d);//返回双曲余弦值为指定数字的角度。
public static double Asin (double d);// 返回正弦值为指定数字的角度。
public static double Asinh (double d);// 返回双曲正弦值为指定数字的角度。
public static double Atan (double d);// 返回正切值为指定数字的角度。
public static double Atan2 (double y, double x);// 返回正切值为两个指定数字的商的角度。
public static long BigMul (int a, int b);// 生成两个 32 位数字的完整乘积。
public static double BitDecrement (double x);// 返回小于 x 的下一个最小值。
public static double BitIncrement (double x);// 返回大于 x 的下一个最大值。
public static double Cbrt (double d);// 返回指定数字的立方根。
public static T Ceiling (
public static double Cos (double d);// 返回指定角度的余弦值。
public static int DivRem (int a, int b, out int result);// 计算两个数字的商,并在输出参数中返回余数。result为余数
public static double Exp (double d);//返回 e 的指定次幂,e 指自然对数的底
public static T Floor (
public static int ILogB (double x);// 返回指定数字以 2 为底的整数对数。
public static double Log (double d);//返回指定数字的自然对数(底为 e)。
public static double Log (double a, double newBase);// 返回指定数字在使用指定底时的对数。newBase为底
public static double Log10 (double d);//返回指定数字以 10 为底的对数
public static double Log2 (double x);//返回指定数字以 2 为底的对数。
public static T Max(
public static T Min(
public static double Pow (double x, double y);// 返回指定数字的指定次幂。
public static double Round (double a);// 将双精度浮点值舍入到最接近的整数值,并将中点值舍入到最接近的偶数。
public static double ScaleB (double x, int n);//返回有效计算的 x * 2^n。
public static int Sign (
public static double Sin (double a);// 返回指定角度的正弦值。
public static double Sinh (double value);//返回指定角度的双曲正弦值。
public static double Sqrt (double d);//返回指定数字的平方根。
public static double Tan (double a);//返回指定角度的正切值。
public static double Tanh (double value);//返回指定角度的双曲正切值。
public static T Truncate (
嗯,密密麻麻的一大堆,方法虽多,但值得注意的方法只有以下几个:
public static T Ceiling (
public static T Floor (
public static T Truncate (
虽然这三个方法计算的结果都是整数,但返回类型并不是整数,所以在使用的时候需要我们进行一次类型转换。Math类还有两个值得注意的字段:
public const double E = 2.7182818284590451;// 表示自然对数的底,它由常数 e 指定。
public const double PI = 3.1415926535897931;// 表示圆的周长与其直径的比值,由常数 π 指定。
这两个也是Math里唯一的两个字段,这是数学中著名的两个无理数,这里只截取了一部分有效值。
1.3 Random
C# 中Random表示伪随机数生成器,这是一种能够产生满足某些随机性统计要求的数字序列的算法。这里大概讲解一下Random的使用,具体的原理等我研究一下哈。
Random是一个类,所以与之前的两个类不同地方就是使用Random生成随机数需要事先构造一个Random对象。Random常用的方法有以下几组:
public virtual int Next ();// 返回一个整型的随机数
public virtual int Next (int maxValue);//返回一个小于所指定最大值的非负随机整数
public virtual int Next (int minValue, int maxValue);//返回在指定范围内的任意整数。
public virtual double NextDouble ();//返回一个大于或等于 0.0 且小于 1.0 的随机浮点数。
我们先演示一下Random的基本应用:
class Program
{
static void Main(string[] args)
{
Random rand = new Random();
for(int i = 0;i< 10; i++)
{
Console.WriteLine($"第{i + 1}次生成:{rand.Next()}");
}
Console.ReadLine();
}
}
打印结果:
可以看出直接Next返回的结果数字都比较大,所以在使用的时候,一般会使用Next (int minValue, int maxValue) 限定返回值。
回到开头,Random是一个类,每次初始化的时候系统会自动计算一个种子给它,如果快速重复构建Random对象,可能会生成一个重复序列,即每次调用的结果一致。(当然,官方说可以,实际我在net core 3.1的环境里没测出来)
class Program
{
static void Main(string[] args)
{
for(int i = 0;i< 5; i++)
{
Random rand = new Random();
for(int j = 0; j < 10; j++)
{
Console.WriteLine($"第{i}个Random 第{j}次生成:{rand.Next()}");
}
}
Console.ReadLine();
}
}
这是测试代码,有兴趣的小伙伴可以自己试试。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~