c#中的数据字符类型:
string不能存储在堆栈中,显然属于引用类型;char则明显属于值类型。
字符串类型:
声明一个字符串类型时,不是在堆中创建一个字符串对象,而只是在堆栈中创建了一个字符串的引用,还没有引用字符串对象。
不包含任何字符的字符串,称为空字符串。
char(字符)类型:
将文本以数的形式存储,将单个的字符放在char的变量中,且它存储为一个0~65535之间的16位数值形式,表示一个unicode字符。
转义字符:
\' 单引号
\" 双引号
\\ 斜杠
\0 空值
\a 报警
\b 退格
\f 换页
\n 换行
\r 回车
\t 制表位字符
\v 纵向列表符
技巧:如果字符串的前缀是@,那么其后的字符串将按照其实际显示的意思解释,不存在转义字符之说。
转义字符的另一用途:char c=”\vuXXXX”,能给c赋一个不在键盘上或不是正规的字符。
布尔类型:
只有两个值:true or false
c#中不允许把布尔类型的变量表示成任何不是true或者false的值。
对象类型:
在c#中,Object类型是一种通用类型,可以表示任何数据类型,是所以类型的基类型,即System.Object,只有在运行中才能确定它的值,另外一种表示是:object。
处理日期数据:
DateTime date;
但是不能这样赋值:date=”10/02/1998”;
应该是:date=Convert.ToDateTime(”10/02/1998”);
其值并不是以字符的形式而是以数字的形势来存储的,但是不能给其赋一个整型的值,只能赋一个有日期格式的值。
如果要在网页是显示,必须把日期转换为字符串形式:Strimg datetime=date.ToString();
四、运算符
1、赋值运算:
2、算术运算:
/ 除法
% 取模/求余
3、运算符的优先级:
从上到下依次减弱:
++,--,一元的-
*,/,%
+,-
=,+=,-+,*=
五、连接字符串:
+与+=的应用。
六、数据类型之间的转换
1、隐式转换
2、显示转换(强制转换)
int num1=66;
int num2=35;
double xxx;
xxx=num1/num2; //存在数据丢失;
xxx=(double)num1/num2; //正确的执行,相当于xxx=(double)num1/(double)num2;
强制类型转换的优先权仅次于括号的优先权,所以前面的执行与xxx=(double)(num1/num2);的值是不一样的。
不能在数值和bool之间进行转换。
3、无效的强制类型转换
为了避免这种情况出现,我们使用这样一种技术:
long intNumber=250000000;
int xxxx;
checked
{
xxxx=(int)intNumber;
}
4、数据转换