您的位置:首页 > 编程语言 > C#

c#每日小结 <三>

2011-07-13 20:42 274 查看
1、read & readline&readkey区别:
read()返回值:int型,一次读一个字符,等待用户输入,如果read()多于用户输入字符,则会读“回车,换行”
readline() 返回值:string型,一次读一行;
readkey:用户输入后,自动读取;不用换行;
2、namespace,class可以嵌套,class内部的方法,属性……不可以。
3、数据类型:3种
1>内置类型2> 用户自定义类型3>匿名类
静态成员是属于类的,非静态的成员是属于类的实例。
(1)Readonly:可以在构造函数中修改数值,即在new的时候确定,它是属于某个对象的;
(2)static:属于类;
(3)const:属于类;用法同static;
例1:class Program
{
int i = 19;
const int ct=23;
static int s=67;
readonly int ro = 66;

public Program()
{
ro = 33;
}
public Program(int ro)
{
this.ro = ro;
}
static void Main(string[] args)
{
Program p = new Program(55);
Console.WriteLine(p.ro);
p.i = 11;
//p.ro = 33;
//Program.ct = 44;
Program.s = 55;
}
}

4、3种命名方法
(1)匈牙利命名法:属性+数据类型+变量名称;
(2)驼峰命名法:首字母小写,以后的每个单词首字母大写;
(3)帕斯卡命名法:每个单词首字母大写。
5、值类型(struct)与引用类型(class):
(1)所有的值类型本质上都是struct类型,所有的引用类型本质上都是类 。
(2)(对比表)

值类型
引用类型
定义
表示实际数据
表示对象的引用
存储
数据本身
对象的地址
存储位置
线程堆栈
托管堆
实例
int、char、结构、枚举
类,接口,数组,字符串,委托
(3)引用类型实例原理:
代码:
1 static void Main()
2 {
3 Product p1 = new Product();
4 p1.PrintProductMessage();
5 }
当程序执行到第三行时,托管堆中首先存放一个已经存在的Product类,该类中存放static字段及方法属性;p1存入线程堆栈中,当new的时候在托管堆中开辟一个存储空间,存放实例对象;该实例对象中存放了类中定义的非静态字段;所以对象本身并没有存储方法;即使非静态方法要由对象实例(p1)来调用。
6、var与dynamic:(Dynamic是一种动态类型)
Var:只能用于局部变量的定义,不能定义类的属性,方法的返回值以及方法的参数类型,而dynamic可以;

7、类型转换:parse,Convert.To
Parse:类型.parse(string);
如:int.parse(“123”);
强类型转换
例如:int i=convert.toint32(“12”);
8、装箱、拆箱
装箱:值类型到object类型,或到此值类型所实现的任何接口的转换。对值类型装箱,会在堆中分配一个对象实例,并将该值复制到该实例中;
例如:int i=12;
Object o=i;
拆箱:
定义:从object类型到值类型,或从接口类型到实现该接口的值类型的显示转换。
步骤:1、检查对象实例,确保它是给定值类型的装箱值;
2、将该值从实例复制到值类型的变量中;
例如:int i=12;
Object o=i;
Int f= (int)o;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息