小知识(一)
var:
初始化必须有赋值,var i;(错的)。
var类型的对象运行过程中不允许再更改类型。(如:var i=1; i=hello! 会出错)
var只声明局部变量。
dynamic:
初始化时可以不赋值。
dynamic类型的对象运行过程中可以给该类型。(如:dynamic i=1; i=hello! 不出错)
可声明为全局变量。
var和dynamic:一般当不确定变量类型时使用。
decimal:
高精度小数,范围:1.0*10^-28到7.9*10^28,精度28位。一般用于表示money。float/double精度7/15位,用这float/double两个类型表示货币时它会帮你抹零。
decimal默认值:0.0m
float默认值:0.0f
double默认值:0.0d
char:
char字符型赋值有3中
char c='d';
char c='\x0068'; 十六进制
char c='\u0068'; unicode表示
char c=(char)68; 整形转换char。
默认值:'\x0000'
八进制和十六进制:
c#中整形只用10进制表示,用8进制格式说明符o或o和16进制格式说明符是x或x编译会出错,(如:int i = o73;出错)。
当需要输出8进制或者16进制时用i.tostring(x)即可。
显示2进制writeline(convert.tostring(231,2));
显示8进制writeline(convert.tostring(231,8)) ;
显示16进制writeline(convert.tostring(231,16));
显示16进制writeline(i.tostring(x));显示小写。
显示16进制writeline(i.tostring(x));显示大写。
padleft和padright
输出字符串的左边或者右边填充空格实现右对齐或者左对齐。
tostring().padleft(8); 输出字符串长度为8,左边补空格。
parse:
parse解析,将数字的字符串表示形式等效转换为数字。
如:int.parse(string); double.parse(string); decimal.parse(string)等等。
var和dycimal没有parse方法。
注意:当16进制数字的字符串转换为int时用parse(string,system.globalization.numberstyle)方法,第二个枚举参数选hexnumber即可。
那2进制字符串和8进制字符串怎么解析成int呢?目前还不知道呢……哪位大师说一下???
encoding:
字符串和字节数组之间的转换。system.text.encoding类
byte[] ← getbytes(string)方法,将字符串转换为字节数组。
string ← getstring(byte[])方法,将字节数组转换为字符串。
encoding属性:
encoding.default 获取系统的当前ansi代码页的编码
encoding.utf7获取utf7编码格式
encoding.utf8获取utf8编码格式
encoding.ascii获取7位ascii字符集的编码
encoding.unicode获取特定顺序的unicode格式的编码
byte[] b=system.text.encoding.unicode.getbytes(s);
enum枚举:
用户自定义数据类型。enum枚举的值从1开始,除了自定义。用逗号,隔开,可赋值整形值。
字符串转换特定枚举:
object ← enum.parse(type enumtype,string value);
如:
color col=(color)enum.parse(typeof(color),"white");
注意:如果字符串跟枚举不对应,会出错。
enum e
{
}
struct结构:
用户自定义数据类型,结构类型。结构可包含构造函数、常量、字段、方法、属性、索引器、运算符。
结构是值类型,在堆栈(stack)上分配地址
结构和类都可以继承接口。
结构不能被集成,类可以。
结构没有析构函数,类有。
struct s
{
}
以上就是c#拾遗之小知识(一)的内容。