日期:2014-05-17  浏览次数:20939 次

C#程序设计入门与实例
c#安装配制
运行c#,只需要安装.net组件包,Microsoft.NET
安装目录:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
.net Framework类库由命名空间组成,每个命名空间可以在程序中使用的类型:类、结构、枚举、委托和接口。
Helloworld实例:
using System;
class Hello
{
	static void Main(){
	   Console.WriteLine("Hello world!");
	}
}

C#开发工具:SharpDevelop
下载地址:http://sourceforge.net/projects/Sharpdevelop/

数组:
using System;
class ArrayTest
{
	static void Main(){
	 //int[] arr = new int[]{1,2,3};
	 int[] arr = {1,2,3};
	 //foreach(int i in arr){
		 //Console.WriteLine(i);
      for(int i=0;i<arr.Length;i++){
	     Console.WriteLine(arr[i]);
		 Console.WriteLine("arr[{0}]={1}",i,arr[i]);
	  }
      Console.WriteLine(Console.ReadLine());
	}
}


ArrayList
ArrayList位于System.Collections命名空间中
ArrayList 对象是比较复杂的数组。ArrayList类提供了Array类未提供的一些功能。

Array和ArrayList
Array的容量是固定的,而ArrayList的容量可以根据需要自动扩充。
ArrayList提供添加、插入或移除某一范围元素的方法。在Array中,只能一次获取或设置一个元素的值。
Array可以具有多个维度,而ArrayList始终只是一维。
实例1:
using System;
using System.Collections;
class ArrList
{
	static void Main(){
	  ArrayList arr = new ArrayList();
	  String str1;
      while(true){
		 Console.WriteLine("please add a string to ArrayList:");
	     str1 = Console.ReadLine();
		 if(str1 == "end") break;
         arr.Add(str1);
         Console.WriteLine();	
		 for(int i=0;i<arr.Count;i++)
			 Console.Write("{0}",arr[i]);
		 Console.WriteLine("\n");
	  }
	}
}

实例2:
using System;
class Matrix
{
	static void Main(){
	   int[,] arr = new int[4,6];
	   for(int i=0;i<4;i++){
	      for(int j=0;j<6;j++){
		    arr[i,j] = (i+1)*10+j+1;
			Console.Write("{0} ",arr[i,j]);
		  }
		  Console.WriteLine();
	   }
	}
}


命名空间
.net Framework类库由命名空间组成。每个命名空间都包含可在程序中使用的类型:类、结构、枚举、委托和接口。
使用命名空间的好处
代码可分布在多个文件中。
命名空间具有扩展性。
可以堆砌出层次式的类组织结构
同时编译多个文件 csc Test1.cs Test2.cs
C#可以直接编译成dll文件(命令 csc /target:library Test.cs).
dll跟主文件关联(命令csc /reference:Test.dll Test2.cs
实例:
using System;
namespace CG
{
	class Test
	{
		static void Main(){
		  Console.WriteLine("my namespance is CG");	
		  A.A1.PrintName a = new A.A1.PrintName();
		  a.intro();
		  A.A2.PrintName b = new A.A2.PrintName();
		  b.intro();
		}
	}
}
namespace A
{
namespace A1
{
	public class PrintName
	{
		public void intro(){
		  Console.WriteLine("My namespace is A1");
		}
	}
}

namespace A2
{
	public class PrintName
	{
		public void intro(){
		  Console.WriteLine("My namespace is A2");
		}
	}
}
}


别名(Alias)
使用using前缀指令可以有效地解决命名空间冲突问题,不过它还有一个特性,使用using加上简称,可以让定义在其它命名空间的类型更容易使用,大多是应用在使用简短的名称来代替欲使用的类。
实例:
using System;
using A=ParentNamespace.ChildNamespace;
namespace CG
{
	class Test
	{
		static void Main(){
		  //ParentNamespace.ChildNamespace.PrintNamespace print = new ParentNamespace.ChildNamespace.PrintNamespace();
		  A.PrintNamespace print = new A.PrintNamespace();
		  print.intro();
		}
	}
}

namespace ParentNamespace
{
	namespace ChildNamespace
	{
		public class PrintNamespace
		{
			public void intro(){
			  Console.WriteLine("My name is namespace");
			}
		}
	}
}


方法(Method)
方法是包含一系列语句的代码块。它实现了一定的功能,并拥有一个便于识别的名称,也便于在程序中调用。
声名方法的语法
成员访问修饰符  返回值  方法名称(参数列表){
  //方法的内容
}
方法名称不可重复,大小写视为不同
在小括号中编写参数列表
方法的内容包含在{}之中
实例:
 using System;
class Mathod
{
	static void Main(){
	  Console.WriteLine("Now time is {0}",MyMethod());
	}
	public static DateTime MyMethod(){
	   return DateTime.Now;
	}
}


共享变量
如果两个以的方法共享一个变量则将此变量声名在类(Class)阶层。和局部变量不同的地方在于,类级别变量的生命周期是在此类加载到内存时就会自动地分配内存空间,要等到此对象被Common Language Runtime的垃圾回收器(Garbage Collector)回收时,才会释放掉所占用的内存空间。