C#基础不扎实,今天开始从头看起!
首先在新建个记事本文件,命名为hello.cs,内部代码如下:
using System;
class Hello
{
static void Main()
{
Console.WriteLine("Hello, World");
Console.Out.WriteLine("Hello World"); //Console.WriteLine是Console.out.WriteLine的简写,
//Console.out是一个属性,返回专门用于控制台输出的System.IO.TextWriter基类的实现
Console.ReadLine();
}
}
打开命令行,执行以下指令:
csc hello.cs
生成一个可执行文件hello.exe,执行程序的输出结构为
Hello,World
注意到知识点:
1.引用命名空间的作用:不加前缀的使用命名空间里的类型
例子:using指令可以把System.Console.WriteLine简写成Console.WriteLine.
2.实例方法可以通过关键字this来引用自身,静态方法在使用中却无需引用某个特定的对象。
例子:代码中的Main是静态方法,默认是程序的入口点。
3.C#本身无单独运行库,.NET框架就是C#的运行库(框架的类库提供类)。
其次,了解一下如何生成程序集文件
下面引用《C#程序设计语言》4.0书上的一个例子,
新建一个文本文件,命名为acme.cs,代码如下:
using System;
namespace Acme.Collections //命名空间名
{
public class Stack //声明类,此类名完整为 Acme.Collections.Stack
{
Entry top; //声明变量top
public void Push(Object data) //方法,实例化top
{
top=new Entry(top,data);
}
public Object Pop() //方法
{
if(top==null) throw new InvalidOperationException();
Object result=top.data;
top=top.next;
return result;
}
class Entry //嵌套类
{
public Entry next; //变量next
public object data; //变量data
public Entry(Entry next,object data) //构造函数
{
this.next=next;
this.data=data;
}
}
}
}
同样打开命令行,执行一下语句
csc /t:library acme.cs
编译成一个类库(没有Mian入口点的代码)并生成一个汇编文件(程序集文件)acme.dll(类库).
注意点:
汇编文件包含了中间语言(Intermediate Language,IL)指令形式的可执行代码,执行之前,IL代码会被.NET公共语言运行库的即时编译器(JIT)转换成处理器相关的代码,便于执行。
最后,写一个测试文件,调用汇编类
using System;
using Acme.Collections;
class Test
{
static void Main()
{
Stack s=new Stack();
s.Push(1);
s.Push(10);
s.Push(100);
Console.WriteLine(s.Pop());
Console.WriteLine(s.Pop());
Console.WriteLine(s.Pop());
Console.ReadLine();
}
}
编译test.cs时,可以使用编译器的/r选项来应用acme.dll汇编:
这是生成一个可执行的汇编文件test.exe,它的输出如下: