C#基础

本文为学习笔记,如有出入请指出

C#简介

语法概述

C#由C/C++发展而来,语法大多和其前辈相同,这里只提需要注意的或是叫法不同的地方。

标识符需由字母或下划线开头的)字符。
通常约定:参数、局部变量和私有字段有小写字母开头,其他在标识符一大写字母开头。
对于编译器保留的关键字,可以在前面加上‘@’作为区分,但实际上‘@’并不时标识符的一部分。
一些关键字是上下文相关的,因此可以不加‘@’区分节能通过编译,但应避免上下文代码混淆。

分隔符(;{})、运算符(+-*\%=)、注释(\、\**\)、类型转换(显、隐式)等与C++用法相同。

数值类型

基本数据类型

C#类型 系统类型 后缀 容量 数值范围
Sbyte SByte 8位 -2^7 ~ 2^7 - 1
short Int16 16位 -2^15 ~ 2^15 - 1
int Int32 32位 -2^31 ~ 2^31 - 1
long Int64 L 64位 -2^63 ~ 2^63 - 1
byte Byte 8位 0 ~ 2^8 - 1
ushort UInt16 16位 0 ~ 2^16 - 1
uin UInt32 U 32位 0 ~ 2^32 - 1
ulong UInt64 UL 64位 0 ~ 2^64 - 1
float Single F 32位 ±(~10^-45 至 10^38)
double Double D 64位 ±(~10^-324 至 10^308)
decimal Decimal M 128位 ±(~10^-28 至 10^28)

其中decimal与doubl 与 float两个用于科学计算的浮点数不同, decimal用于10位精度以上的数值计算或金融计算,存储方式和前者的以2为基数的存储方式不同,它以10为基数。decimal保证了有效位数内的精确度。但由于它不是处理器原生支持的数据类型,因此操作大约会比double慢十倍。

在double与float中有一些特殊值:
double.NaN:“Not a Number”,和任何数值不相等(和其他NaN也不相等);0/0或用无穷相减也会返回该常量;
double.PositiveInfinity:正无穷,比任何数值都大;正数除以0为无穷大;
double.NegativeInfinity:负无穷,比任何数值都小;负数除以0为无穷小;
-0.0:不知道干啥的

简单的流输入输出

Console.Write("Hello {0}! \n", NameString);	//标准流输出
Console.WriteLine("Hello {0}!", NameString);	//和上一个比自动句尾添加换行符
char c = Console.Read();			//读取一个字符,返回int
Console.ReadKey();		//目前只知道可以用来暂停,回车继续(吃一个字符)
/*“一个 ConsoleKeyInfo 对象,描述 ConsoleKey 常数和对应于按下的控制台键的 Unicode 字符(如果存在这样的字符)。 ConsoleKeyInfo 对象还在 ConsoleModifiers 值的按位组合中描述是否在按下控制台键的同时按下了一个或多个 Shift、Alt 和 Ctrl 修改键。”via MSDN*/
//ReadKey 虽将字符回显,但按下就已经输入,故无法修改
string s = Console.ReadLine(); 			//字符串输入,换行结束输入

字符串

对于‘\’等字符,通常在C\C++中做法是'\'表示一个斜线。
C#中提供了另外一种方法,在字符串前面加上‘@’,表示该字符串为逐字符字符串,即:

string s = @"C:\User\xxx.ooo";

数组的定义及初始化如下:

char[] a = new char[5];	//一维数组
int[,] b = new int[3, 9]; //多维数组
int[,] c = new int[3, 4]
{
    {1, 2, 3, 4};
    {4, 5, 6, 7};
    {5, 6, 7, 8}
};

函数

参数数组,关键字params

static   void Foobar(int int_val, 
				params  char vals)
	{
	...
	}

引用调用参数,关键字ref、out。ref与C++中引用大致相同。ref修饰的参数必须在函数中被使用,比喻在调用前得到初始化。out用来给参数赋值。out可以修饰未赋值的参数,或说out修饰的参数应看做未赋值,但out在函数中必须被赋值。

static void Main (string[] args)
	{
	    int a = 10;
	    int b;
	    Foobar (ref a, out b); //注意使用的时候也要写ref, out
	}

static void Foobar (ref int a, out int b)
	{
	    a ++;
	    b = a;
	    return;
	}

posted on 2016-07-10 10:03  Osinovsky  阅读(108)  评论(0)    收藏  举报

导航