本文主要讲

  • 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(实例化)后,才能使用。对于静态类来说,在引入命名空间后,即可直接使用。

 using System;
using System.IO; public class Test
{
static void Main()
{
int num = Add(, );
Console.WriteLine(num);
Console.ReadKey();
}
public static int Add(int x, int y)
{
return x + y;
}
}

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

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

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

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

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

这就需要使用 using static 指令。

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

using static System.Console;

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

 using System;
using System.IO;
using static System.Console;
public class Test
{
static void Main()
{
int num = Add(, );
WriteLine(num);
ReadKey();
}
public static int Add(int x, int y)
{
return x + y;
}
}

可以直接使用 WriteLine() 了。

注:

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

嵌套命名空间&&作用域

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

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

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

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

下面是一个例子。

 using System;
namespace a
{
using System.IO;
public class Test
{ static void Main()
{
Console.WriteLine("命名空间a");
FileInfo file = new FileInfo("文件地址");
}
}
}
namespace b
{
public class Test
{
static void Main()
{
Console.WriteLine("命名空间b");
FileInfo file = new FileInfo("文件地址");    //报错
}
}
}

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

注:

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


 别名

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

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

使用方法

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

  例(第二行):

 using System;
using Test1 = System.Console;
namespace core
{
class Program
{
static void Main(string[] args)
{
Test1.WriteLine("测试");
}
}
}

Main 方法

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

  • 没有参数  返回值为 void

    static void Main()
  • 没有参数  返回值为 int

    static int Main()
  • 带有参数  返回值为 void

    static void Main(string[] args)
  • 带有参数  返回值为 int

    static int Main(string[] args)
    

      

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

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

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


C# 方法与参数 常见命名空间汇总 using的使用 main方法参数的更多相关文章

  1. Java中的static关键字解析(转自海子)__为什么main方法必须是static的,因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名来访问。

    Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...

  2. 30.编写一个Shape类,具有属性:周长和面积; 定义其子类三角形和矩形,分别具有求周长的方法。 定义主类E,在其main方法中创建三角形和矩形类的对象, 并赋给Shape类的对象a、b,使用对象a、b来测试其特性。

    package zuoye8; public abstract class Shape { private double zhouchang ; private double mianji ; pub ...

  3. 编写一个Shape类,具有属性:周长和面积; 定义其子类三角形和矩形,分别具有求周长的方法。 定义主类E,在其main方法中创建三角形和矩形类的对象, 并赋给Shape类的对象a、b,使用对象a、b来测试其特性。

    package shape; public class Shape { //定义成员变量 private double zhouchang; private double mianji; public ...

  4. java 执行 jar 包中的 main 方法

    java 执行 jar 包中的 main 方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar执行后总是运行指定的主方法,如果 jar 中有多 ...

  5. Ant执行一个含有main方法的class文件

    目前需要使用ant来执行一个含有main方法的class文件,并且需要通过命令来行传两个参数(start和end)到main方法. <target name="gsp" de ...

  6. 【细说Java】揭开Java的main方法神秘的面纱

    大家都知道,main方法是Java应用程序的入口,其定义格式为: public static void main(String[] args) 可是为什么要这么定义呢?不这样定义可以么?main方法可 ...

  7. C#程序之Main()方法

    一.Main()方法的简介 1.一般情况下,一个C#可执行程序只有一个应用程序对象(也就是就程序入口),但是在某些情况,可能会有多个应用程序对象(程序入口),如单元测试中,这个时候我们就需要通过命令行 ...

  8. 【细说Java】揭开Java的main方法神秘的面纱(转)

    大家都知道,main方法是Java应用程序的入口,其定义格式为: public static void main(String[] args) 可是为什么要这么定义呢?不这样定义可以么?main方法可 ...

  9. 简述java程序中的main方法

    简述main方法: 在java语言程序编写时都会涉及到一个main方法,它的格式为: public static void main(String[] args)(一般必须这么定义,这是java规范) ...

随机推荐

  1. Ibatis框架之系统架构

    如果用最简洁的话来总结 iBATIS 主要完成那些功能时,我想下面几个代码足够概括. Class.forName("oracle.jdbc.driver.OracleDriver" ...

  2. ORA-04091: table xxx is mutating, trigger/function may not see it

    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as tbcs SQL> SQL ...

  3. js格式化文件大小,单位:Bytes、KB、MB、GB

    原文出自:https://blog.csdn.net/seesun2012 // 格式化文件大小 function renderSize(value){ if(null==value||value== ...

  4. php中数组和字符串的相互转换

    数组转字符串: implode('!', $arr);//将一维数组以!分隔组合成一个字符串,参数一可以为"" 字符串转数组: explode('!', $str);//将字符串以 ...

  5. 【转】IIS网站浏览时提示需要用户名密码登录-解决方法

    打开iis,站点右键----属性----目录安全性----编辑----允许匿名访问钩选 IIS连接127.0.0.1要输入用户名密码的解决办法原因很多,请尝试以下操作: 1.查看网站属性——文档看看启 ...

  6. Java基础教程(8)--表达式、语句和块

    一.表达式   表达式由变量和运算符组成.下面是一个简单的赋值表达式: a = 0;   表达式都具有运算结果,因为赋值表达式的运算结果是左侧操作数的值,因此上面的表达式将会返回一个0.可以使用简单的 ...

  7. 【SSH网上商城项目实战03】使用EasyUI搭建后台页面框架

    转自:https://blog.csdn.net/eson_15/article/details/51312490 前面两节,我们整合了SSH并且抽取了service和action部分的接口,可以说基 ...

  8. hdu 3474 Necklace 单调队列

    Necklace Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  9. POJ 1789(最小生成树)

    这题要把给的字符串变成边的权值 #include <cstdio> #include <iostream> #include <queue> #include &l ...

  10. Mysql分布式部署高可用集群方案

    HAproxy+Mycat +MySQL主从集群高可用方案 1.         HAproxy高可用方案: haproxy+keepalived,利用keepalived的VIP浮动能力,(多台ha ...