zoukankan      html  css  js  c++  java
  • C#类编译命令行以及变量作用域的研究

    以简单的小程序为例说明:

    public class Program 
    {
    void Main(string[] args)
    {
    Console.WriteLine("Welcome, Miracle He");
    Console.ReadLine();
    }
    }

    我们可以使用以下的命令行对以上程序进行编译:

    csc Welcome.cs: 输出Welcome.exe
    csc /t:library Welcome.cs: 输出Welcome.dll
    csc /out:My.exe Welcome.cs: 输出My.exe
    csc /t:library /out:Welcome.debug.exe /warn:0 /nologo /debug *.cs: 输出Welcome的调试版本(不带警告和徽标)
    csc /t:library /out:Welcome.xyz *.cs: 输出Welcome.xyz的dll文件
    

    注:csc.exe位于C:\Windows\Microsoft.NET\Framework\版本号,需要说明的是:VS.Net编译器只识别你的文件名,而非类名,也即你的文件名与类名可以不一致,且同一个文件中可定义多个类。但建议文件名与类名一致,且最好只包含一个类

    对C#变量作用域的研究

    1. 变量声明时必须赋值,同时var可以自动辨型,但局部变量不能使用var声明,可在同一行声明多个变量。

    int i = 0, age = 28; 
    var i = 0, age = 28;//与上等同
    public abstract void Write(string name);

    2. 变量只在包含它的区域(即{}之间)有效,只能在声明之后使用;而类的字段可以在使用后再声明。

    public class Test
    {
    public void MethodA()
    {
    int n = 0;//n只在此方法中有效
    Console.WriteLine(str);//输出test
    }
    public void MethodB()
    {
    n = 1;//此时n已失效
    }
    string str = "test";//字段可先使用后声明
    }

    3. 字段和局部变量冲突时,局部变量将覆盖字段的值,如要使用该字段的值,则可以采用static或this进行获取。

    public class Test 
    {
    static int x = 5;
    public static void TestStatic()
    {
    int x = 10;
    Console.WriteLine(x);//输出10
    Console.WriteLine(Test.x);//输出5
    }
    string y = "test";
    public void TestInstance()
    {
    string y = "test1";
    Console.WriteLine(y);//输出test1
    Console.WriteLine(this.y);//输出test
    }
    }
  • 相关阅读:
    【甘道夫】Hadoop2.2.0 NN HA详细配置+Client透明性试验【完整版】
    zookeeper学习资源
    Java jdbc数据库连接池
    几种任务调度的 Java 实现方法与比较
    java常用集合类详解(有例子,集合类糊涂的来看!)
    Eclipse上GIT插件EGIT使用手册
    MongoDB 数据备份、恢复与迁移管理
    Mongodb快速入门之使用Java操作Mongodb
    mongodb高可用集群搭建
    Mongodb常见错误
  • 原文地址:https://www.cnblogs.com/hmiinyu/p/2236136.html
Copyright © 2011-2022 走看看