首先讲解一下c#,这里只是粗略的讲解,详细内容请购买相关书籍,或参阅相关文档。c#已经取消了c++中的指针,并且在c++中大量被使用的操作符 (:: ->)已经不在出现,c#中指支持一个"."。c#具有面向对象编程语言的所有特性,如封装、继承、多态等。而且比java更面向对象,每种类型都可以看作一个对象。但c#指允许单继承,即一个类不会有多个基类。另外,c#没有了全局函数,没有了全局变量,也没有了全局常量。一切都必须封装在一个类中。
下面举一个控制台应用程序的小例子:
using System;
class MikeCat
{
public static void Main()
{
Console.WriteLine("迈克老猫c# asp.net入门系列教程--欢迎访问老猫的理想");
}
}
在c#中程序总是从Main()方法开始,Main()方法必须且只能包含在一个类中,Main()方法返回的类型可以是void(无返回值)或int(返回代表应用程序错误级别的整数)。
上面的using System;用于导入名字空间(Namespace)用来表明类的层次关系。如果不用using导入名字空间,则每次用某一个类时就得在类名前面加上名字空间。
c#程序的输入输出通过Console来实现。Console是System名字空间下的一个类。在屏幕上输出一个字符串用Console.WriteLine(),接受输入设备的输入用Console.ReadLine()方法。
程序代码:
class MikeCat
{
public static void Main()
{
System.Console.WriteLine("迈克老猫c# asp.net入门系列教程--欢迎访问老猫的理想\n");
System.Console.WriteLine("请输入用户名:");
string user=System.Console.ReadLine();
System.Console.WriteLine("欢迎你:{0}的光临!",user);
}
}
WriteLine()方法的参数表中紧随串后的第一个参数将替换{0}。
如果执行程序时要传递命令行参数给应用程序,则Main()方法的格式应为:
using System;
public class MikeCat
{
public static void Main(string[] args)
{
Console.WriteLine("共有{0}个命令行参数",args.Length);
for(int i=0;i {
Console.WriteLine("Arg[{0}]=[{1}]",i,args[i]);
}
}
}
c#中的单行注释用//,多行注释用/*...*/
c#中使用常量:
using System
class MikeCat
{
public const double PI=3.14;
public static void Main()
{
Console.WriteLine("圆周率PI的值为{0}",PI);
}
}
结构体类型(struct)是一种复合数据类型,用于将某些相关的数据组织到一个新的数据类型中。
using System;
struct MikeCat
{
public string Mike;//user
public uint Age;//age
public string Email;//email
}
class mf
{
public static void Main()
{
MikeCat zl;//声明结构体类型变量zl
zl.Name="迈克老猫";
zl.Age=24;
zl.Email="
[email protected]";
Console.WriteLine("姓名:{0},年龄:{1},邮箱{2}",zl.Name,zl.Age,zl.Email);
}
}
c#中枚举类型(enum)是一组逻辑上密不可分的整数值:
using System;
enum WeekDay
{
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
};//注意这里的分号
class MikeCat
{
static void Main()
{
WeekDay day;//声明枚举型变量day
day=WeekDay.Tuesday;
Console.WriteLine("day的值是{0}",day);
}
}
c#中枚举类型中的每个元素类型均为int byte long short型,且第一个元素值为0,其后面的按1递增。在枚举中也可以直接给元素赋值,后面的递增。
enum WeekDay:byte
{
Sunday=1,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
继续上回,数组是我们经常用到的,我来介绍一下:数组是具有相同类型的一组数据。当访问数组中的数据时,可以通过下标来指明。c#中数组元素可以为任何数据类型,数组下标从0开始,即第一个元素对应的下标为0,以后逐个递增。数组可以一维也可多维。
//包含6个元素的一维整数数组;
int[] mf1=new int[6]; //注意初始化数组的范围,或者指定初值;
//包含6个元素的一维整数数组,初值1,2,3,4,5,6
int[] mf2=new int[6]{1,2,3,4,5,6};
//一维字符串数组,如果提供了初始值设定项,则还可以省略 new 运算符
string[] mf3={"c","c++","c#"};
//一维对象数组
Object[] mf4 = new Object[5] { 26, 27, 28, 29, 30 };
//二维整数数组,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4
int[,] mf5=new int[,]{{1,2},{3,4}};
//6*6的二维整型数组
int[,] mf6=new mf[6,6];
下面来看一个一维字符串数组的遍历
using System;
public class MikeCat
{
static void PrintArray(string[] arr)
{
//打印数组元素,arr.Length 表示数组元素的个数
for(int i=0;i {
Console.WriteLine("arr[{0}]={1}",i,arr[i]);
}
}
public static void Main()
{
string[] arr={"c","c++","c#"};
//将数组作为一个参数传递
PrintArray(arr);
}
}
程序结果:arr[0]=c arr[1]=c++ arr[2]=c#
下面来看一个4行2列(4*2)的整型数组的遍历:
using System;
public class MikeCat
{
static void PrintArray(int[,]&n