zoukankan      html  css  js  c++  java
  • C#学习记录1——Hello World!

      现在是大二下学期,跟着学校的课在学习C#,之前学过的语言有C,C++,Java,还有一点HTML

    之前从没写过这种博客,而且又是一边学一边写,所以不管是版面或是专业性的知识理解上可能都会有一些问题,希望大神给指正。。。

    每次的博客基本分成两部分,第一部分先完成一个例子(外加一些简单的解释),第二部分有相关的解释来详细拓展

      C#是Microsoft推出的一种面向对象的编程语言,开发Windows相应的应用十分的方便

    开发使用的软件是Microsoft Visual Studio(简称VS)

    一、Hello World

      1.打开VS后,选择新建项目(文件——新建——项目)

      在新建项目窗口中,选择左侧模板中的“Visual C#”选项,然后选择中间“控制台应用程序”

      最后,将下面项目名称和存储位置设置好,点击确定

      如下图

      建立好的初始状态

      其中的一些代码及简单解释

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    //using后面的一些东西叫做namespace,中文是命名空间,具体见解释1
    namespace HelloWorld
    {//这里就是把项目做成了namespace,个人理解就是为了日后的复用(此处不是很明白,求指教
        class Program
        {
            static void Main(string[] args)//Main方法是CLR开始的第一个方法,也就是说运行时从这里开始
            {
                
            }
        }
    }

      2.在Main()方法中敲入如下语句

    static void Main(string[] args)
            {
                System.Console.WriteLine("Hello World!");
                //或 Console.WriteLine("Hello World!");等其他方法
                //具体区别见后面解释2
                
            }

       3.点击调试——开始执行(不调试)或快捷键CTRL+F5

      即可看到C#黑框的Hello World了<其他调试方法见解释3>

    二、具体解释:

      1.关于namespace

      这个namespace我之前也没接触过,它可以限定名字的作用域,防止名字的冲突,另外还可用于代码的复用。

      所以项目一开始的using就基本等同于C++里面的include,以及Java里的import

      2.关于通过其他方法来显示“Hello World”

        (1)namespce

        下面两句话的结果都会调用System命名空间中,Console类的WriteLine函数,将“Hello World!”写出到标准输出上。
                其区别在于:第一个语句使用了这个函数的全路径(即将函数所属的位置详细的描述), 这样不会引起任何的歧义(也就是前面说的namespace的优点);

              而第二个语句则是直接使用Console类来调用函数。之所以能这样做是因为在项目的一开始我们加入了using System;这样的一句话。这样的话,程序在使

              用System命名空间中的类型时就不用每次都在前面添加命名空间的名字了。   

    System.Console.WriteLine("Hello World!");
    Console.WriteLine("Hello World!");

        需要说明:1.第二种方法虽然看上去是简化了程序的语句,但某种程度上说它就失去了namespace的最大优点,即使用不同namespace的同名内容;

             2.using后面一定要跟一个命名空间的名字。如下面的一句话就会引起错误

    using System.Console;//注意Console是System下的一个类,而不是命名空间
    class Hello
    {
        static void Main()
        {
             WriteLine("Hello World");
        }
    }

              显示的错误类型

        (2)使用Main()方法的传入参数

           首先点击项目——XXX(项目名称)属性

          之后再出现的窗口中选中左侧的“调试”,并在右侧“命令行参数”中敲入一些参数

          然后点击属性窗口选项卡旁边的×,并在Main()中添加如下语句

    Console.WriteLine(args[0] + " " + args[1] + " " + args[2]);//args的个数根据你输入到参数列表的单词的个数

          然后点击调试——启动调试(F5),再点击调试——开始执行(不调试)(CTRL+F5)。就可以看到你输入到参数中的单词了

        (3)使用类与对象

        尝试在项目中新建类,并在Main()方法中创造其对象,来调用WriteLine()方法

        首先,在右侧项目名称上单击右键,选择添加——类

           在出现的窗口中选择“类”,下方填写类的名称,确定

          在新建的类中敲入代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace HelloWorld
    {
        class Example
        {
            public static void StaticExampleWrite(string[] words)
            {
                Console.WriteLine("static method: " + words[0] +" "+ words[1]+" "+words[2]);
            }
          // static静态方法,从属于类本身。调用时可以通过对象,也可以直接通过了类来调用。
          //一直在用的WriteLine也是Console里面的静态方法,可以通过Console类来直接调用
            public void ExampleWrite(string[] words)
            {
                Console.WriteLine("non-static method: " + words[0] + " " + words[1] + " " + words[2]);//非静态方法,属于具体的每个对象
            }
        }
    }

          下面回到Program.cs文件,加入下面的语句

    Example.StaticExampleWrite(args);//通过类直接调用
    Example examp = new Example();//创建类的对象
    examp.ExampleWrite(args);   //通过具体对象来调用

          注意,非静态方法不能通过类来直接调用

          然后点击调试——启动调试(F5),再点击调试——开始执行(不调试)(CTRL+F5)。

       3.关于调试

         前面一直是在整体的调试。缺点在于不能再调试过程中对具体的某些内容进行监控,并且如果出错,难以在整个程序中寻找错误。下面我们通过设置调试的断点来逐个

       语句或逐过程进行调试。这里两种方法有点不太理解。试了一下觉得好像逐语句能够到程序每一个正在执行语句的位置(如果调用了其他类的语句,则会转到所在类的位置

       ),而逐过程就是以Main()中的以整个一句(?)来进行调试??求指教

         断点可以在对应语句左侧单击左键设置,位置如下图的红色圆点

         在设置了断点之后,在点击F5进行调试,会发现程序会停在设置的断点位置,这里可以方便我们对一些参数进行查看,比如传入Main()方法的string数组args,将

      鼠标放在args之上,会浮出args参数的列表,点击左侧的三角来查看程序运行至此时args参数的具体内容,方便出错时进行修改

        4.修改控制台的显示效果

        控制台可以通过一些语句来更改显示的效果,如背景的颜色、字体的颜色等等

        例如,下面的代码的显示效果为

    static void Main(string[] args)
            {
                Console.Title = "C# Hello World!";
                Console.WindowHeight = 30;//设置控制台窗口的高度
                Console.WindowWidth = 80;//设置控制台窗口的宽度
                Console.BackgroundColor = ConsoleColor.DarkRed;//背景色
                Console.ForegroundColor = ConsoleColor.Green;//前景色
                System.Console.WriteLine("Hello World!");
                Console.BackgroundColor = ConsoleColor.DarkMagenta;
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine(args[0] + " " + args[1] + " " + args[2]);
                Console.BackgroundColor = ConsoleColor.Gray;
                Console.ForegroundColor = ConsoleColor.White;
                Example.StaticExampleWrite(args);
                Console.BackgroundColor = ConsoleColor.DarkRed;
                Console.ForegroundColor = ConsoleColor.Green;
                Example examp = new Example();
                examp.ExampleWrite(args);        
            }

     

  • 相关阅读:
    极具创意的专辑封面
    【Linux必知必会】五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
    【Ubuntu技巧】Ubuntu下gedit 打开txt文件乱码的处理方法
    【Linux原理】Linux中硬链接和软链接的区别和联系
    【短语学习】out of the box的含义和翻译
    【Ubuntu技巧】在全新安装的Ubuntu上快速重装软件包
    【论文阅读心得】图像识别中一个常用词的中英文释义——artifact
    【短语学习】狮子那一份the lions share
    【OpenCV学习】摄像头显示、录像、拍照程序
    【Perl学习】学习笔记(持续更新中)
  • 原文地址:https://www.cnblogs.com/sywang/p/4341135.html
Copyright © 2011-2022 走看看