本教程参考c#和asp.net程序设计教程撰写,有什么不足之处请大家指出,或在老猫的理想blog留言。
首先讲解一下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<args.length;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="mike@hebut.com";
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
};