代码改变世界

c#笔记

2012-09-18 18:16  blue童鞋  阅读(142)  评论(0编辑  收藏  举报

一.基础部分:

1.static方法属于类而不属于对象 即c#中不能用对象调用该类的静态成员(c++ java都可以的)

 

建议:

switch语句一定要有default来处理意外情况

尽量不用this

避免在同一个文件中使用多个类

关键语句写注释

尽量使用接口

命名规范:

所有的成员变量前加前缀_

接口的名称加前缀I

方法的命名为动宾短语 比如 creatFile()

类中 数据成员写到函数前面 用换行分隔

2.为赋值的内置变量不能直接使用 会编译出错

 

整数类型:

sbyte 8位有符号

byte 8位无符号

short 16位有符号

ushort 16位无符号

int32位有符号

uint 32 无

long 64位有符号

ulong 64 无

decimal decimal数据类型和double差不多 不过精度非常高 最大精确到小数点后28位 占12个字节

初始化和直接赋予的值必须符合变量类型的规定 比如 byte b = -1; b = -1会编译出错 但byte b = 0; b-= 1;可以通过 会溢出

string在C#中是变量

装箱 将值变量转换成引用变量 拆箱 将引用变量转换成值变量 int i = 1; object o = i;//装箱 int j = (int)o;//拆箱 作用:互转值变量和引用变量

它在value-type 和reference-type之间的架起了一座桥梁,使得任何value-type的值都可以转换为object类型的值,反过来转换也可以。装箱和拆箱使我们能够统一地来考察类型系统,其中任何类型的值最终都可以按对象处理。
C#中应该尽量避免装箱和拆箱操作,因为这样会对性能造成一定的影响。
在.NET2.0中提供了泛型,应尽量使用泛型。

bool变量不能与其他变量进行转换 当为静态类变量的时候 不初始化即可使用 为false

 

String 字符串

string = System.String

compare(str,str)静态方法 返回1 0 -1 

compareTo(str2)动态方法 同上

Equal/equal 同上 但返回bool型

format函数 类似于c的printf 只是返回值是一个string 更多格式参见 http://www.cnblogs.com/linbaoji/archive/2009/09/03/1559821.html

split分隔字符串 用法:

 

String s = "123,456 789";
char[] c = { ',', ' ' };//将逗号 空格设为分隔标记
String[] sr = new string[30];//用来放分隔后的字符串片段
sr = s.Split(c);
for (int i = 0; i != sr.Length; ++i)
{
Console.WriteLine(sr[i]);
}

 遍历数组的循环语句

     foreach (int temp in arr)
            {
                Console.WriteLine(temp);
            }

**数组的长度可以使用变量

一般的数组是Array类的子类

ArrayList是他的升级版 位于System.Colloection命名空间下 支持一些动态功能  ArrayList只能是一维的

ArrayList元素的类型由第一个进入数组的元素类型确定

//哈希表键值对读取和查找
            Hashtable a = new Hashtable();
            a.Add("id", 123);
            a.Add("sex", "nan");
       
            Console.WriteLine("\t键 \t值");
            foreach (DictionaryEntry dic in a) 
            {

                Console.WriteLine("\t" + dic.Key + '\t' +dic.Value);
            }
            Console.WriteLine(a.Contains("nan"));//只能查找键 而不能是值
            Console.WriteLine(a.ContainsValue("nan"));//查找值

 

属性

相当于方法 

    class Test
    {
        private int a = 1;
        public int aa
        {
            get
            {
                return a;
            }
            set
            {
                a = value;//value就是设置的时候得到的值
            }
        }
    }

如果没有set 则为只读的属性