.net core精彩实例分享 -- 基础篇

介绍

随着.net core越来越流行,对.net core 基础知识的了解,实际应用等相关的知识也应该有所了解。所以就有了这篇文章,案例都是来自阅读的书籍,或者实际工作中感觉比较有用的应用。分享亦总结。

本文主要介绍 .net core 相关的基础知识案例。

具体案例

使用 using static 指令

【导语】

使用 using static 指令,可用像引入命名空间那样引入某个类型(该类型是静态或者包含静态成员)。引入类型后,在代码中访问器静态成员时可以省略类型名称。

本例以 System 命名空间下比较有代表性的两个类做演示。

【操作流程】

步骤1:新建控制台应用程序项目。

步骤2:在文件的顶部,使用 using static 指令引入 ConsoleMath 两个类。

using static System.Console;
using static System.Math;

步骤3:此时访问 Console.WriteLine 方法可以不写 Console 类的名称。

WriteLine("Hello World!");

步骤4:同样,访问 Math 类也不用写类名 Math

WriteLine($"5 的平方为:{Pow(5d, 2d)}");
WriteLine($"-650 的绝对值是:{Abs(-650)}");
WriteLine($"16,33 中最小的数是:{Min(16, 33)}");

其中 AbsPow 以及 Min 都是 Math 类公开的静态方法,如果不使用 using static 指令,则上面三行代码就应该写成如下形式。

Console.WriteLine($"5 的平方为:{Math.Pow(5d, 2d)}");
Console.WriteLine($"-650 的绝对值是:{Math.Abs(-650)}");
Console.WriteLine($"16,33 中最小的数是:{Math.Min(16, 33)}");

显然,使用了 using static 指令后,代码可以更加简练。

在 case 语句中使用 when 子句

【导语】

case 语句后面除了使用常量值外,还可以进行类型匹配。为了让类型匹配更加精准,可以在 case 语句后面加上 when 子语句。 when 子语句所使用的表达式必须返回布尔值,只有当 when 子语句返回 true 时,该 case 语句才会被执行。

所以,when 子语句就相当于给 case 分支增加一个额外的条件,以进行更加细致的筛选。例如,通过类型匹配可以配出一个数组对象实例,可是这个数组有可能是空数组(元素个数 为 0),在 case 分支处理时,开发者可能会考虑当出现空数组时另外处理,此时,when 子语句就发挥作用了。以下代码在 switch 语句块中设定两个 case 分支,这两个分支都接受数组类型的对象,只是其中一个明确接受空数组。

case Array arr when arr.Length == 0:
    ...
    break;
case Array arr:
    ...
    break;

下面的实例将会进一步演示 when 子句的用法。

【操作流程】

步骤1:新建控制台应用程序项目。

步骤2:在生成的 Program 类中增加一个静态方法。该方法接收一个 object 类型的参数,并使用 switch 语句块进行分支处理,如下所示。

static void DisplayInfo(object instance)
{
    switch (instance)
    {
        case null:
            Console.WriteLine("对象未实例化。");
            break;
        case Array arr when arr.Length == 0:
            Console.WriteLine("这是个空数组。");
            break;
        case Array arr:
            Console.WriteLine($"数组包含 {arr.Length} 个元素。");
            break;
        case IList ls when ls.Count == 0:
            Console.WriteLine("这是个空列表。");
            break;
        case IList ls:
            Console.WriteLine($"列表总共有 {ls.Count} 项。");
            break;
    }
}

null 值不会匹配任何类型,所以要作为一个常量值来筛选。在使用 when 子句时一定要把握好 case 的顺序。例如上面代码中对空数组的分析,假设把两个 case 语句做以下调换。

case Array arr:
    Console.WriteLine($"数组包含 {arr.Length} 个元素。");
    break;
case Array arr when arr.Length == 0:
    Console.WriteLine("这是个空数组。");
    break;

这样会发生编译错误。因为不论数组中是否包含元素,第一个 case 语句都能匹配,这样会使得第二个 case 语句永远无法匹配,等同于第二个 case 语句后面的代码永远不会被执行。

步骤3:分别向 DisplayInfo 方法中传递不同的对象进行测试。

// 测试一:空引用
DisplayInfo(null);
// 测试二:空数组
int[] intarr = { };
DisplayInfo(intarr);
// 测试三:空列表
List<long> listet = new List<long>();
DisplayInfo(listet);
// 测试四:包含元素的数组
byte[] btarr = { 36, 2, 54, 7 };
DisplayInfo(btarr);
// 测试五:包含列表项的列表
List<int> listint = new List<int> { 21, 13, 62, 8, 19 };
DisplayInfo(listint);

步骤4:按下 F5 快捷键运行项目,可以看到以下内容。

在这里插入图片描述

总结

本文到这里就结束了,下一篇将介绍面向对象相关的知识案例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值