LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#基础:命名空间与using用法

admin
2023年11月1日 15:2 本文热度 565

本期内容:

1、什么是命名空间

2、命名空间的内嵌写法用法

3、using关键字的用法

4、命名空间、类、函数、变量之间的关系


一、什么是命名空间


    命名空间用于在最高逻辑级别组织代码。它们对暴露给其他程序和应用程序的编程元素进行分类和呈现。在命名空间中,我们可以声明另一个命名空间、类、接口、结构、枚举或委托。


    我们不能定义诸如属性、变量和事件之类的项目。这些项目必须在结构或类等容器中声明。在使用诸如类库之类的大型对象组时,命名空间可以防止歧义并简化引用。


    我们不能定义诸如属性、变量和事件之类的项目。这些项目必须在结构或类等容器中声明。在使用诸如类库之类的大型对象组时,命名空间可以防止歧义并简化引用。


注意:不能将顶级语句与命名空间一起使用。


    命名空间的本意是为了让代码结构更清晰,也顺便解决了类重名的问题。Java开发中不需要命名空间是因为java类是靠包名来区分的,而JS这类的语言如果要实现区分同名对象就需要使用命名空间的思路设计代码。C#中提供了一套命名空间的规则,具体如下:

定义和使用命名空间:

using System;

using first_space;
namespace first_space{   class ClassA   {      public void func()      {         Console.WriteLine("第一个命名空间ClassA的方法被执行");      }   }   class ClassB   {      public void func()      {         Console.WriteLine("第一个命名空间ClassB的方法被执行");      }   }}namespace second_space{   class ClassA   {      public void func()      {         Console.WriteLine("Inside second_space");      }   }}  
class TestClass{  static void Main(string[] args)  {    // 需要区分命名空间加命名空间,类名前面加了命名空间可以不使用using语句引用    first_space.ClassA fc = new first_space.namespace_cl();    second_space.ClassA sc = new second_space.namespace_cl();    fc.func();    sc.func();    // 不需要区分命名空间直接用类名,前提是要加using语句引用这个命名空间    ClassB cb = new ClassB();    cb.func();
   Console.ReadKey();  }}


二、命名空间的内嵌写法用法


    不言而喻其实就是在一个命名空间内嵌套一个另外的命名空间,直接看实例:

using System;using SomeNameSpace;using SomeNameSpace.Nested;
namespace SomeNameSpace{    public class MyClass    {        static void Main()        {            Console.WriteLine("In SomeNameSpace");            Nested.NestedNameSpaceClass.SayHello();        }    }
   // 内嵌命名空间    namespace Nested      {        public class NestedNameSpaceClass        {            public static void SayHello()            {                Console.WriteLine("In Nested");            }        }    }}//执行结果如下://In SomeNameSpace//In Nested


三、using关键字的用法


using关键字最常见的使用方法是引用命名空间,但也有一些其他的用法:


01、using static 指令

指定无需指定类型名称即可访问其静态成员的类型

using static System.Math;var = PI; // 直接使用System.Math.PI

02、using起别名

using Project = PC.MyCompany.Project;

03、using语句

将实例与代码绑定,这时的using已经不是针对命名空间的操作了,我们可以把它看成一个代码块。在()中声明一些变量,在{}中使用这些变量,{}中的代码会被放在一段try代码中,而这段代码执行完毕后会使用finally的方式调用所声明变量的Dispose方法(只有实现了IDisposable接口的类才可以在using代码块中声明,因为要调用Dispose方法)。

using System;

using UnityEngine;
namespace Y7PLAY.FlyingSB2{    public class MyClass : IDisposable    {        public void MyFun()        {        }        public void Dispose()        {            throw new NotImplementedException();        }    }    public class Testscript : MonoBehaviour    {        // Start is called before the first frame update        void Start()        {            using (MyClass t1 = new MyClass())// 声明变量            {        t1.MyFun();//使用变量            }// 代码块结束后自动调用生成对象的Dispose方法          // 这段代码与上面那段代码相等,使用using语句更加简洁      MyClass t2 = null;            try            {                t2 = new MyClass();                t2.MyFun();            }            finally            {                t2.Dispose();            }        }    }}


四、命名空间、类、函数、变量之间的关系


关于他们之间的关系我也是捋了很久,以下仅代表我个人观点:


1.命名空间 namespace 中可包含多个类 class,命名空间将这些类打包起来。一个命名空间想调用另一个命名空间中的类时,就需要首先使用using+命名空间名字 声明命名空间。


2.类通过class关键字定义,在类中有变量和函数。变量和函数不能写到命名空间中。


3.函数,可以算是类的功能,一个类中通常有多个函数,实现多种功能。就比如电视机是一个类,然后电视机这个类的函数也就是它的功能就有,播放视频、发出声音、切换频道,等等。要注意的是,在类中通常我们会看到一个和类同名的函数,它没有返回值,也通常没有输入参数(形参),这个函数叫做构造函数,它的作用一般就是初始化类的一些成员变量,默认是没有形参的,不过如果有需要可以将其重载为有形参的(直接添加所需形参)。其他的与类不同命,且具有返回值的函数叫做类的成员函数,实现各种类的功能。


4.变量,定义在类里面但是在函数外面的变量称为成员变量,它在整个类中一直存在;定义在函数内部的变量叫做局部变量,只存在于当前函数中。成员变量占用的内存比局部的大,只需要在函数里面用一下的变量一般定义为局部就好了。关于内存占用的问题以后有机会再细说。


该文章在 2023/11/1 15:10:56 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved