⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 visual c# .net 入门.txt

📁 c# 大量的学习资料。包括ado.net学习笔记
💻 TXT
📖 第 1 页 / 共 2 页
字号:
Visual C# .NET 入门
www.chinacs.net  2004-12-12  中文C#技术站 



 
Visual C# .NET 入门
Microsoft Corporation

适用于:Microsoft Visual C# .NET

摘要:Visual C# .NET 是功能强大的编程语言 Visual Studio 套件的最新成员。Visual C# .NET 入门指南通过实现一个简单的 QuickSort 算法,带您领略如何构建 Visual C# .NET 项目。

下载 Quicksort_Visual_CSharp_.NET.exe。

本页内容

 简介 
 步骤 1. 开始项目 
 步骤 2. Hello, World! 
 步骤 3. 程序结构 
 步骤 4. 控制台输入 
 步骤 5. 使用数组 
 步骤 6. 文件输入/输出 
 步骤 7. 创建函数 
 步骤 8. 使用调试器 
 小结 
 补遗:QuickSort C# .NET 的源代码 
 补遗:关于 QuickSort C# .NET 

简介
Visual C# .NET 是 Visual Studio 系列中的最新成员。这种新语言基于 C/C++,但它深化了更容易地使用面向组件编程的发展方向。C/C++ 程序员应该非常熟悉它的语法。

下面的示例应用程序示范了如何构建一个简单的实现 QuickSort 算法的 C# 项目。它包括了 C# 程序的基本组成部分:读/写控制台和文件、创建函数和使用基本数组。

这些入门指南并不打算涵盖该编程语言的所有方面。它们只是您探索这种语言的一个起点。我们鼓励您按照本教程的说明执行,因为它包括了 QuickSort 应用程序的各个不同部分。您还可以获得完整的源代码和项目文件。

建议的要求

编译此示例应用程序需要 Visual Studio.NET(测试版 2 或更高版本)。关于 C/C++ 的知识是有帮助的但不是必需的。

 
步骤 1. 开始项目
Visual Studio 中的开发工作以解决方案的形式进行组织,每个解决方案包含一个或多个项目。在本教程中,我们创建的解决方案包含一个 C# 项目。

创建一个新项目
1.
 在 Visual Studio .NET 环境中,从菜单中选择 File | New | Project。 



 
2.
 在左侧选择 Visual C#Projects,然后在右侧选择 Console Application。 



 
3.
 指定项目的名称,然后输入创建项目的位置。Visual Studio 会自动创建项目目录。 



 
4.
 单击 OK,那么现在就正式开始了! 
 

Visual C# 解决方案
Visual Studio.NET 已经创建了含有一个简单 Visual C# 项目的解决方案。该项目包含两个文件:assemblyinfo.cs 和 class1.cs。

接下来的几步骤将讨论这些不同的文件以及如何编译该项目。

 
步骤 2. Hello, World!
很遗憾,但我们仍然无法抵御这种诱惑……我们还是不得不完成一个基于 C# 的经典"Hello, World!"应用程序,这个应用程序最初是用 C 语言编写的。

修改源代码
1.
 在 Solution Explorer 中双击文件"class1.cs"。可以通过"View"菜单来显示 Solution Explorer。 
 
2.
 更改预生成的模板 (class1.cs),如下面以斜体突出显示的 代码所示。 

using System;
namespace quicksort
{
    /// 
    /// Summary description for Class1.
    /// 
    class Class1
    {
        static void Main(string[] args)
        {
            //
            // TODO: Add code to start application here
            //
            Console.WriteLine ("Hello, C#.NET World!");
        }
    }
}

 
3.
 注意,当您键入代码时,Visual Studio 将为您提示类和函数的名称(因为 .NET 框架发布了这种类型信息)。 





 

编译应用程序
1.
 既然您已经完成了修改,就可以通过在 Build 菜单中简单地选择 Build 来编译 Visual C# 项目。 



 
2.
 来自 C# 编译器的错误和消息会在 Output 窗口中显示。如果没有错误,则可以通过单击 Debug 菜单下的 Start without Debugging 来运行 Hello World 应用程序。 



 

程序输出
在 Visual C# 中运行 Hello World 示例应用程序时,输出结果的屏幕截图如下:




理解更改
System.Console 类的 WriteLine() 函数打印传递给它的字符串,其后紧跟一行新的字符。此函数可以接受许多其他数据类型(包括整型和浮点型)的参数。

在程序加载完成后,控制就传递给 Main() 函数。这就是我们在该过程中插入对 WriteLine() 调用的原因。

 
步骤 3. 程序结构
既然我们已经构建了一个简单的 Hello World 应用程序,那么就让我们停下来分析一下 Visual C# 应用程序的基本组成部分。

源代码注释
字符 // 将行的剩余部分标记为一个注释,这样 C# 编译器就会忽略它。另外,/* 和 */ 之间的代码也会被当作注释。

// This line is ignored by the compiler.
/* This block of text is also
ignored by the Visual C# compiler. */

Using 指令
.NET 框架为开发人员提供了许多有用的类。例如,Console 类处理对控制台窗口的输入和输出。这些类是按照层次树的形式组织的。Console 类的完全限定名实际上是 System.Console。其他的类包括 System.IO.FileStream 和 System.Collections.Queue。

using 指令允许您在不使用完全限定名的情况下引用命名空间中的类。以斜体突出显示的 代码应用了 using 指令。

using System;
class Class1
{
    static void Main(string[] args)
    {
        System.Console.WriteLine ("Hello, C#.NET World!");
        Console.WriteLine ("Hello, C#.NET World!");
    }
}

类声明
与 C++ 或 Visual Basic 不同,Visual C# 中的所有函数都必须封装在一个类中。class 语句声明一个新的 C# 类。就 Hello World 应用程序来说,Class1 类包含一个函数,即 Main() 函数。如果用一个 namespace 块将类的定义括起来,就可以把类组织为诸如 MsdnAA.QuickSortApp 这样的层次。

在本入门指南中,我们并不打算深入地介绍类,但是我们将为您简要概述为什么类是我们的示例应用程序的一部分。

Main() 函数
在应用程序加载到内存之后,Main() 函数就会接收控制,因此,应该将应用程序启动代码放在此函数中。传递给程序的命令行参数存储在 args 字符串数组中。

 
步骤 4. 控制台输入
现在,我们将继续编写 QuickSort 应用程序。我们需要做的第一件事就是提示用户提供输入和输出文件。

修改源代码
更改 C# 源文件 (class1.cs),如下面以斜体突出显示的代码所示。其他的差异(如类名)可忽略不计。

// Import namespaces
using System;
// Declare namespace
namespace MsdnAA
{
    // Declare application class
    class QuickSortApp
    {
        // Application initialization
        static void Main (string[] szArgs)
        {
            // Describe program function
            Console.WriteLine ("QuickSort C#.NET Sample Application\n");
            // Prompt user for filenames
            Console.Write ("Source: ");
            string szSrcFile = Console.ReadLine ();
            Console.Write ("Output: ");
            string szDestFile = Console.ReadLine ();
        }
    }
}

从控制台进行读取
Console 类的 ReadLine() 方法提示用户输入,并返回输入的字符串。它会自动地为字符串处理内存分配,由于使用了 .NET 垃圾回收器,您不需要做任何释放内存的工作。

程序输出
从菜单中选择 Debug | Start Without Debugging 来运行程序。这是到此为止来自 QuickSort 应用程序的输出的屏幕截图。




 
步骤 5. 使用数组
在对从输入读取的行进行排序之前,程序需要将其存储到一个数组中。我们将简要讨论可实现对象数组的 .NET 基类的用法。

修改源代码
更改 C# 源文件 (class1.cs),如下面以斜体突出显示的代码所示。其他的差异(如类名)可忽略不计。

// Import namespaces
using System;
using System.Collections;
// Declare namespace
namespace MsdnAA
{
    // Declare application class
    class QuickSortApp
    {
        // Application initialization
        static void Main (string[] szArgs)
        {
            // Describe program function
            Console.WriteLine ("QuickSort C#.NET Sample Application\n");
            // Prompt user for filenames
            Console.Write ("Source: ");
            string szSrcFile = Console.ReadLine ();
            Console.Write ("Output: ");
            string szDestFile = Console.ReadLine ();
            // TODO: Read contents of source file
            ArrayList szContents = new ArrayList ();
        }
    }
}

使用 ArrayList 类
我们将导入 System.Collections 命名空间,这样我们就可以直接引用 ArrayList。此类实现大小可动态调整的对象数组。要插入新的元素,可以简单地将对象传递到 ArrayList 类的 Add() 方法。新的数组元素将引用原始的对象,而垃圾回收器将处理它的释放。

string szElement = "insert-me";
ArrayList szArray = new ArrayList ();
szArray.Add (szElement);

要检索现有的元素,请将所需元素的索引传递给 Item() 方法。另外,作为一种简写形式,还可以使用方括号 operator [],它实际上映射到 Item() 方法。

Console.WriteLine (szArray[2]);
Console.WriteLine (szArray.Item (2));

ArrayList 类中还有许多其他方法,但是插入和检索都是我们需要在此示例中使用的。请查阅 MSDN 库以获得完整的参考指南。

步骤 6. 文件输入/输出
现在,让我们来实现读取输入文件和写入输出文件。我们将每一行读取到一个字符串数组中,然后输出该字符串数组。在下一步中,我们将使用 QuickSort 算法来对该数组进行排序。

修改源代码
更改 C# 源文件 (class1.cs),如下面以斜体突出显示的代码所示。其他的差异(如类名)可忽略不计。

// Import namespaces
using System;
using System.Collections;
using System.IO;
// Declare namespace
namespace MsdnAA
{
    // Declare application class
    class QuickSortApp
    {
        // Application initialization
        static void Main (string[] szArgs)
        {
            ... ... ...
            // Read contents of source file
            string szSrcLine;
            ArrayList szContents = new ArrayList ();
            FileStream fsInput = new FileStream (szSrcFile, FileMode.Open,
                FileAccess.Read);
            StreamReader srInput = new StreamReader (fsInput);
            while ((szSrcLine = srInput.ReadLine ()) != null)
            {
                // Append to array
                szContents.Add (szSrcLine);
            }
            srInput.Close ();
            fsInput.Close ();
            // TODO: Pass to QuickSort function
            // Write sorted lines
            FileStream fsOutput = new FileStream (szDestFile,
                FileMode.Create, FileAccess.Write);
            StreamWriter srOutput = new StreamWriter (fsOutput);
            for (int nIndex = 0; nIndex < szContents.Count; nIndex++)
            {
                // Write line to output file
                srOutput.WriteLine (szContents[nIndex]);
            }
            srOutput.Close ();
            fsOutput.Close ();
            // Report program success
            Console.WriteLine ("\nThe sorted lines have been written.\n\n");
        }
    }
}

从源文件进行读取
使用 FileStream 类打开源文件,然后加入 StreamReader 类,这样我们就可以使用它的 ReadLine() 方法了。现在,我们调用 ReadLine() 方法,直到它返回 null,这表示到达文件结尾。在循环过程中,我们将读取的行存储到字符串数组中,然后关闭这两个对象。




写入输出文件
假设已经用 QuickSort 对字符串数组进行了排序,接下来要做的事情就是输出数组的内容。按照同样的方式,我们将 StreamWriter 对象附加到 FileStream 对象上。这使得我们可以使用 WriteLine() 方法,该方法能够很方便地模仿 Console 类的行为。一旦遍历了数组,我们便可以象前面一样关闭这两个对象。




 
步骤 7. 创建函数
最后一步就是创建一个函数来在字符串数组中运行 QuickSort。我们将此函数放到应用程序类 QuickSortApp 之中。

修改源代码
更改 C# 源文件 (class1.cs),如下面以斜体突出显示的 代码所示。其他的差异(如类名)可忽略不计。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -