C#方法与参数 常见命名空间汇总 using的使用main方法参数

简介: C#方法与参数 常见命名空间汇总 using的使用main方法参数

本文主要讲

  • C# 常见命名空间
  • using static 指令 && 调用静态方法
  • 嵌套命名空间&&作用域
  • 别名
  • Main() 方法



C# 常见命名空间


 

命名空间 作用
System

创建文件是默认引入,处理数学计算、、环境变量、输出控制台、垃圾回收器及一些常见的异常和特征。

System.Collections

同:都是处理对象集合(列表和字典等)

异:后者是使用泛型的强类型集合

System.Collections.Generic 
System.Data

用于数据库处理

例如 ADO.NET

System.Data.Odbc

System.Data.Oracle

Client System.Data.OleDb

System.Data.SqlClient

System.IO 

  处理文件输入/输出(I/O)

  数据压缩

  端口操作

System.IO.Comoression 

System.IO.Ports 

System.Drawing

用于绘图、进行图像处理

System.Windows.Froms 包含构建用户界面和各类控件的类型
System.Windows 

WPF UI工具包

System.Windows.Controlls
System.Windows.Shapes
System.Linq 

提供LINQ 功能(语言集成查询)

 

System.Web

构建.NET Web应用程序,用于支持ASP.NET

System.ServiceModel 

通过WCF API构建分布式应用程序

System.Workflow.Runtime

使用WCF API构建支持工作流的应用程序的类型

System.Workflow.Activities
System.Threading

用来构建多线程应用程序的类型

System.Threading.Tasks

 基于任务的异步操作

System.Security 

以安全为中心的命名空间,有很多用来处理权限、加密等问题的类型

System.Xml

用于XML数据交互的类型



注:在C#中,引入一个命名空间时,是不能使用该命名空间的子空间。

例如,引入了System.Collections,但是不能使用System.Collections.Generic 内的类和方法。

 

其它更多不同功能的、不同分类的命名空间,推荐查看文章

https://blog.csdn.net/lidandan2016/article/details/77994232?locationNum=8&fps=1


using static 指令 && 调用静态方法


在C#中在不同命名空间的类,需要先引入该命名空间,然后new(实例化)后,才能使用。对于静态类来说,在引入命名空间后,即可直接使用。


1 using System;
 2 using System.IO;
 3
 4 public class Test
 5 {
 6     static void Main()
 7     {
 8         int num = Add(5, 6);
 9         Console.WriteLine(num);
10         Console.ReadKey();
11     }
12     public static int Add(int x, int y)
13     {
14         return x + y;
15     }
16 }


例如控制台用于输出字符串的方法 Console.WriteLine() ,引入 System 后,即可直接使用。在上述代码的第 9 行。

样式    类.方法();   Console.WriteLine()

对于跟 Main 在同一个文件中的方法,必定是静态方法, 直接调用该方法名。在上述代码的第8行。

样式  方法();  如 Add();

 

如果不在同一命名空间的静态方法,我想直接使用 方法(); 而不是 类.方法();   这种形式呢?

这就需要使用 using static 指令。


using static 指令指定一种类型,无需指定类型名称即可访问其 静态成员和嵌套类型


1

usingstaticSystem.Console;


 修改上面的示例代码,留意第9、10行


1 using System;
 2 using System.IO;
 3 using static System.Console;
 4 public class Test
 5 {
 6     static void Main()
 7     {
 8         int num = Add(5, 6);
 9         WriteLine(num);
10         ReadKey();
11     }
12     public static int Add(int x, int y)
13     {
14         return x + y;
15     }
16 }


可以直接使用 WriteLine() 了。

注:

  • 这种方式虽然可以简化长度,但是,也会容易出现很多问题,例如名称冲突、可读性降低。
  • using static 只针对静态类型有效!

 

嵌套命名空间&&作用域


命名空间也有作用域,离开作用域的类型将无法使用。但命名空间的引入,不像变量的声明那么“任性”。

命名空间的引入是使用using指令,using指令可以在命名空间外命名空间内的顶部并且在类的外面使用。

在命名空间外使用的using指令作用域是 该文件下的所有命名空间。

在命名空间内使用的using指令作用域是 该命名空间内。

下面是一个例子。


1 using System;
 2 namespace a
 3 {
 4     using System.IO;
 5     public class Test
 6     {
 7         
 8         static void Main()
 9         {
10             Console.WriteLine("命名空间a");
11             FileInfo file = new FileInfo("文件地址");
12         }
13     }
14 }
15 namespace b
16 {
17     public class Test
18     {
19         static void Main()
20         {
21             Console.WriteLine("命名空间b");
22             FileInfo file = new FileInfo("文件地址");    //报错
23         }
24     }
25 }


微信图片_20220426112819.png

 

第一行 using System; 命名空间 a、b 都能使用,然而 只在命名空间中 a 中 using System.IO; (在第四行) ,命名空间 b 是不能使用的。

 

注:

很少会这样写代码,因为根据约定,每个文件只应该有一个类型声明、在头部引入命名空间。


别名


C# 中,可以使用using指令为命名空间或类型取一个别名,别名将在文件全范围起替代作用。

最常见用途为消除两个同名类型的歧义和缩写名称。


使用方法


1

using别名 = 命名空间或类型;


  例(第二行):


1 using System;
 2 using Test1 = System.Console;
 3 namespace core
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Test1.WriteLine("测试");
10         }
11     }
12 }

 


 

Main 方法


Main 方法是程序入口,一般有以下四中写法:

 

  • 没有参数  返回值为 void

1

staticvoidMain()


  • 没有参数  返回值为 int

1

staticintMain()


  • 带有参数  返回值为 void

1

staticvoidMain(string[] args)


  • 带有参数  返回值为 int

1

staticintMain(string[] args)



写法的考虑是在执行程序是提供命令行参数,并在Main方法中返回状态标识符。

使用visual studio 软件开发C#,一般用不到,使用控制台应用手动编译 源代码时,提供的参数会传入Mian方法中。


C#程序中可以出现多个 Main() 方法,但必须在运行时,确定或指定入口 Main 。

相关文章
|
2月前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
307 0
|
1月前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
116 65
|
13天前
|
JSON 程序员 C#
使用 C# 比较两个对象是否相等的7个方法总结
比较对象是编程中的一项基本技能,在实际业务中经常碰到,比如在ERP系统中,企业的信息非常重要,每一次更新,都需要比较记录更新前后企业的信息,直接比较通常只能告诉我们它们是否指向同一个内存地址,那我们应该怎么办呢?分享 7 个方法给你!
|
16天前
|
C# UED SEO
C# 异步方法async / await任务超时处理
通过使用 `Task.WhenAny`和 `Task.Delay`方法,您可以在C#中有效地实现异步任务的超时处理机制。这种方法允许您在指定时间内等待任务完成,并在任务超时时采取适当的措施,如抛出异常或执行备用操作。希望本文提供的详细解释和代码示例能帮助您在实际项目中更好地处理异步任务超时问题,提升应用程序的可靠性和用户体验。
44 3
|
1月前
|
存储 C#
【C#】大批量判断文件是否存在的两种方法效率对比
【C#】大批量判断文件是否存在的两种方法效率对比
41 1
|
1月前
|
C#
C#的方法的参数传递
C#的方法的参数传递
18 0
|
1月前
|
数据可视化 程序员 C#
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
46 0
|
6月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
202 3
|
21天前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
30 3
|
2月前
|
API C#
C# 一分钟浅谈:文件系统编程
在软件开发中,文件系统操作至关重要。本文将带你快速掌握C#中文件系统编程的基础知识,涵盖基本概念、常见问题及解决方法。文章详细介绍了`System.IO`命名空间下的关键类库,并通过示例代码展示了路径处理、异常处理、并发访问等技巧,还提供了异步API和流压缩等高级技巧,帮助你写出更健壮的代码。
45 2