刘铁猛老师-C#语言入门详解第三节-初始类与命名空间

本节内容

  • 剖析Hello,World程序
    • 初始类(class)与命名空间(namespace)
  • 类库的引用
    • DLL引用(黑盒引用)
    • 项目引用(白盒引用)
  • 依赖关系
  • 排除错误

下面是对本节内容的解读(可看可不看)

  • 类和命名空间放在哪里

它们是放在类库(类的仓库)里面

  • 接下来介绍如何为自己的项目添加对其他类库的引用

一旦发生引用就会产生依赖关系,依赖关系在团建质量当中起着至关重要的作用

质量好的软件依赖关系非常清晰、好维护;质量不好的软件往往都是由于依赖关系不清楚造成的。

  • 接下来也会介绍什么是依赖关系

这套课程在一开始就会把一些可能对你未来的工作,对软件质量有深远影响的概念灌输给我们


剖析Hello,World程序

  • 我们以这个程序为例子
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloWorld
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello,World!");
        }
    }
}
  • 这里Program和Console都是类

C#语言是完全面向对象语言 程序本身也是一个类

命名空间
  • 这里namespace HelloWorld是什么意思呢
  • 这个意思就是我们编写的Program类放在了一个叫做HelloWorld的命名空间里面

当别人想用我的类的时候,可以很方便的把这个类找出来

  • 我们主要要讲的是using,这个using就是把我们要用的命名空间引用进来

这里我建议大家自己动手写程序,把using全删除之后,再调用类看会出现什么问题

  • 例如
namespace HelloWorld
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello,World!");
        }
    }
}
//这个程序是运行不了的,它会告诉你它不认识Console
//因为我们知道Console是哪个命名空间,所以我们可以这样写
System.Console.WriteLine("Hello,World!");

这样写是没问题的,但是这样写会显得很是繁琐,所以选择用using引入命名空间

命名空间有一个很重要的功能就是让同名的类不冲突


类库的引用

  • 类和命名空间是放在叫类库里面的

类是书,命名空间是标签,类库是图书馆

  • DLL引用(黑盒引用) |不知道源代码
  • 项目引用(白盒引用) |知道源代码
黑盒引用

右键引用,选添加引用

4PW~J0___IRT__M@_2S3I_8.png

进来就是这样可以再右上角搜索框里面搜索自己要添加的类库

7EV5HHC__HTF53DS2ZN_0.png

选定要用的类库,确定即可

R_MNFSEG0~__R_W494_W9.png

注意 有时候类库会有一些更底层的类库,就是使用这个类库之前,还要先引入其他类库,所以有没有就是别人已经打包好的,我一点击下载,有关这个类库的相关.dll文件就全部下载了呢!当然有就是NuGet包

右键引用,然后点管理NuGet程序包

P5_`Y6PJF18NXIPY_DKQ~EL.png

就是这样在搜索框搜索你要的类库就行

U`U__J0SY_FOZHL_FOP_W7K.png

白盒引用就是用自己已经写好的.dll文件

右键引用,选添加引用

4PW~J0___IRT__M@_2S3I_8.png

点击浏览,再点击右下角的浏览B,其实就是浏览本地文件

UEB6EBQBO_78JC71_6SST9W.png

  • 我这里没有写.dll文件就不继续演示了,后面找到对应的.dll文件就行

依赖关系

  • 类(或对象)之间的耦合关系
  • 优秀的程序追求“高内聚,低耦合”
    • 教学程序往往违反这个原则
  • UML(通用建模语言)类图

高内聚:一些数据一些功能该属于哪个类就属于哪个类,要精确的放到这个类里面,类和类之间的依赖关系尽可能的低

依赖关系也叫耦合关系

排除错误

  • 仔细阅读编译器的报错
  • MSDN文档与搜索引擎结合

这节课就这么多,感谢大家观看,谢谢!

相关推荐

  1. C语言】头文件命名详解 - 《头无敌 ! 》

    2024-03-31 21:24:02       25 阅读
  2. C++命名空间详解

    2024-03-31 21:24:02       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-31 21:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-31 21:24:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-31 21:24:02       82 阅读
  4. Python语言-面向对象

    2024-03-31 21:24:02       91 阅读

热门阅读

  1. pytest中文使用文档----6临时目录和文件

    2024-03-31 21:24:02       36 阅读
  2. TextBlock 的run元素

    2024-03-31 21:24:02       42 阅读
  3. 探索前端开发中的路径:./、../、@/ 等详解

    2024-03-31 21:24:02       34 阅读
  4. 生产环境数据处理单sql编写

    2024-03-31 21:24:02       34 阅读
  5. Dockerfile中DSL语法

    2024-03-31 21:24:02       35 阅读
  6. python之@overload

    2024-03-31 21:24:02       45 阅读
  7. Spring Boot(版本:3.2.4)入门

    2024-03-31 21:24:02       39 阅读
  8. 队列的基本概念

    2024-03-31 21:24:02       38 阅读
  9. Android TV 应用中的遥控器按键事件处理

    2024-03-31 21:24:02       43 阅读