码迷,mamicode.com
首页 > Windows程序 > 详细

C#学习记录1——Hello World!

时间:2015-03-16 21:04:14      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:

  现在是大二下学期,跟着学校的课在学习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);        
        }

技术分享

 

C#学习记录1——Hello World!

标签:

原文地址:http://www.cnblogs.com/sywang/p/4341135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!