1.1 第一个c#程序
每本编程书基本上都是这样开始的,那就是Hello,world!。看过很多编程语言,发现c#是最简单的,当然了python也很简单,但是它的应用广泛性却不能和c#相比较。本博文以vc2010和vc2012为编译器。不多说,直接上代码。
1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 5 namespace _1.变量 6 { 7 class Program 8 { 9 static void Main(string[] args) 10 { 11 Console.WriteLine("Hello sharp也疯狂!"); 12 Console.ReadKey(); 13 } 14 } 15 }
这个很简单,其中第12行是为了显示给操作者观看,否则会一闪而过。
1.2 变量的声明与初始化
在c#声明一个变量主要用以下语法:
datatype identifier;
比如:int i=10; int x=1, y=2;//这说明x与y都是int类型的。声明不同的类型,则需要如下:int x=12;bool y =true;
c#声明的变量需要初始化,这是c#安全性的体现,在c#中主要存在两种类型。
- 变量在类或者结构中的,如果没有人为的初始化,那么会默认0.
- 方法的局部变量必须显示的初始化,否则,在没有初始化之前就用到它的值,会发生错误!
值得一提的是,如果没有利用int 或者long 或者bool进行声明变量,而是用了关键字var声明,则系统可以自动判断,这就是类型推断。比如:int i=100;可以写成var i=100;下面的这段代码可以很显然的说明这个问题:


1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 5 namespace _1.变量 6 { 7 class Program 8 { 9 static void Main(string[] args) 10 { 11 12 13 var name = "sharp也疯狂"; 14 var a = 100; 15 var b = true; 16 var c = 'H'; 17 Type nameType = name.GetType(); 18 Type aType = a.GetType(); 19 Type bType = b.GetType(); 20 Type cType = c.GetType(); 21 Console.WriteLine("name is type"+nameType.ToString()); 22 Console.WriteLine("a is type" + aType.ToString()); 23 Console.WriteLine("b is type" + bType.ToString()); 24 Console.WriteLine("c is type" + cType.ToString()); 25 Console.ReadKey(); 26 27 } 28 }
1.3 常量
在声明和初始化变量时,在变量前加上关键字const,就可以指定常量。比如:const in a =100;常量具有以下特点:
- 常量必须在声明时初始化,指定之后,其值便不能更改。
- 常量的值必须能在编译时用于计算。(使用只读字段才能从一个变量的值中提取来初始化常量。)
- 常量总是静态的,但是不需要static关键字的修饰。
1.4 值类型与引用类型
值类型存储在堆栈中,引用类型存储在托管堆中,值类型存储的是值,而引用类型存储的是对值的引用。下面这段代码可以很好的说明问题。


1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 5 namespace 值类型与引用类型 6 7 { 8 public class YinYong //定义一个引用类 9 { 10 11 public int Value;//定义一个公开的整数型的Value 12 13 14 15 } 16 17 18 class Program 19 { 20 static void Main(string[] args) 21 { 22 YinYong yinyong1, yinyong2 ; 23 yinyong1 = new YinYong(); 24 yinyong1.Value = 10; 25 yinyong2 = yinyong1; 26 int a = 10, b = 20; 27 Console.WriteLine("在这之前:"); 28 Console.WriteLine("a是" + a); 29 Console.WriteLine("b是" + b); 30 Console.WriteLine("yinyong1.Value是" + yinyong1.Value); 31 Console.WriteLine("yinyong2.Value是" + yinyong2.Value); 32 b=30; 33 yinyong1.Value=30; 34 Console.WriteLine("把b和yinyong1.Value的值变成30之后:"); 35 Console.WriteLine("a是" + a); 36 Console.WriteLine("b是" + b); 37 Console.WriteLine("yinyong1.Value" + yinyong1.Value); 38 Console.WriteLine("yinyong2.Value" + yinyong2.Value); 39 Console.ReadKey(); 40 } 41 } 42 }
预定义的值类型有:整型和浮点类型,字符类型和布尔类型。预定义的引用类型有:object类和string类型。