1第一个C#项目(Hello World!)
1.1控制台输出Hello World
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 数组
{
internal class Program
{
static void Main(string[] args)
{
int[] numbers = new int[5];
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
for (int i=0;i<numbers.Length;i++)
Console.WriteLine(numbers[i]);
Console.ReadKey();
}
}
}
下面我们来分析上述程序的各个部分:
1)using System;
using关键字用来在程序总引入System命名空间,一个程序中可以有多个using语句。
2)namespace 项目测试
namespace关键字用来声明一个命名空间,“项目测试”则是命名空间的名字。命名空间是类的集合,上面代码中“项目测试”的命名空间中包含了一个名为“SayHello”的类
3)class SayHelllo
class关键字用来定义一个类,"SayHello"是;类名,类中通常用来存放程序中需要的数据和函数(也叫方法)。
4)static void Main(string args[])
Main为定义的函数名称,Main函数是整个C#程序的入口,其中包含了程序运行时需要执行的操作。static和void都是用来修饰Main函数的关键字。
5)Console.ReadKey();
此行代码是针对VS.NEY用户的,它会使程序进入等待状态,敲击键盘上任意一个按键可以让程序继续运行。之所以加这行代码是因为命令行窗口会在程序运行结束后自动关闭,加入该代码可以避免窗口闪退。
注意:
1.C#区分大小写;
2.所有语句和表达式都必须是以英文的分号“;”结尾;
3.程序从Main函数开始执行;
4.与JAVA不同,程序文件名可以和类名不同;
1.2编译并执行程序
单击F5进行调试运行;
Ctrl+F5进行不调试运行
2.数组与字符串
2.1数组的定义与使用
数组是一种存储同一种类型数据的集合。在C#中,可以提供以下方式定义一个数组:
int[] numbers=new int[5];
大家可以参考我的实例进行运行
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 数组
{
internal class Program
{
static void Main(string[] args)
{
int[] numbers = new int[5];
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
for (int i=0;i<numbers.Length;i++)
Console.WriteLine(numbers[i]);
Console.ReadKey();
}
}
}
上述是一个比较笨的定义数组以及数组元素初始化的方法
int[] num=new int[]{1,2,3,4,5};
这种方法会使得代码更简洁化
3.C#数据类型
3.1值类型(Value types)
类型 | 描述 | 范围 | 默认值 |
bool | 布尔值 | True或False | False |
byte | 8位无符号整数 | 0到255 | 0 |
char | 16位无符号整数 | U+0000到U+ffff | '\0' |
decimal | 128位精度的十进制值,28-29位有效位数 | 0.0M | |
int | 32位有符号整数位 | 0 | |
double | 64位双精度浮点型 | 0.0D | |
float | 32位单精度浮点型 | 0.0F |
3.2引用类型(Reference types)
引用类型知道是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的引用类型有:object,dynamic和string.
对象(Object)类型
当一个值类型转换为对象类型时,则被称为装箱;另一个方面,当一个对象类型转换为值类型时,则被称为拆箱。
object obj;
obj=100;//这是装箱
动态(Dynamic) 类型
您可以存储任何类型的值再动态类型变量中。这些变量的类型检查是在运行时发生的。
声明动态类型的语法:
dynamic <varible_name> =value;
例如:
dynamic d=20;
动态类型与对象类型相似,但是对象类型变量的类型检查是再编译时发生的,而动态类型变量的类型检查是在运行时发生的。
字符串(String)类型
字符串类型允许您给变量分配任何字符串值。字符串(String)类型的值可以通过两种形式进行分配:引号和@引号。
例如:
String str="runoob.com";
一个@引号字符串:
@"runoob.com";
用户自定义引用类型有:class、interface或delegate。将在后续深入学习。
3.3指针类型(Pointer types)
指针类型变量存储另一种类型的内存地址。C#z中的指针与C或C++中的指针有相同的功能。
声明指针类型的语法:
type* identifier;
指针是值为另一个变量的地址的变量,集,内存位置的直接地址。就像其他变量或者常量,您必须在使用指针存储其他变量地址之前声明指针。