c#查漏补缺

一、构造对象的时候直接给非方法成员赋值。
C#支持在构类对象的时候对类的非方法成员进行初始化。如果省略这个过程,则所有的非方法成员初始化为缺省值,当然还可以直接在类中给类的成员赋值。例如
public int i = 2;
以上做法在C#中是允许的。它的做法虽然和构造对象时初始化效果一致,但是作用范围更广。因为在构造对象时初始化只针对当前的对象,而在类中初始化则对所有即将构造的对象都起作用。
    class Test
    {
        public int data;
        private string _str;
        public string str
        {
            set { _str = value; }
            get { return _str; }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Test obj = new Test() { data = 100, str = "Congratulations! You've gained {0} scores" };
            System.Console.WriteLine(obj.str, obj.data);
        }
    }
二、通过索引器构造二维数组
C#的索引器类似于C++中对索引运算符的重载。
    class Test
    {
        private int[][] arr = new int[2][];
        public int[] this[int index]
        {
            set { arr[index] = value; }
            get { return arr[index]; }
        }

    }
    class Program
    {
        static void Main(string[] args)
        {
            Test obj = new Test();
            obj[0] = new int[2] { 1, 2 };
            obj[1] = new int[] { 3, 4, 5, 6};

            System.Console.WriteLine("{0}, {1}", obj[0][0], obj[0][1]);
            System.Console.WriteLine("{0}, {1}, {2}, {3}", 
                obj[1][0], obj[1][1], obj[1][2], obj[1][3]);
        }
    }
三、通过FileStream和StreamReader实现对文件的逐行读取
在Python中文件的逐行读取十分简单,打开文件之后,通过readline函数就可以实现。在C#中需要先定义文件流,然后将该流赋值给一个流的读取器。然后再调用读取器的逐行读取函数来实现。
                    FileStream file = new FileStream(iniFilePath, FileMode.Open, FileAccess.Read);
                    StreamReader reader = new StreamReader(file);

                    while (!reader.EndOfStream)
                    {
                        string str = reader.ReadLine();
			// todo with line
                    }
四、通过FileStream和StreamWriter实现字符串写入
类似于文件的逐行读取
                FileStream fs = new FileStream(iniFilePath, FileMode.Create, FileAccess.Write);
                StreamWriter sw = new StreamWriter(fs);

                sw.Write(str);//str为字符串,'\0'结束
五、路径相关的类Path
获取绝对路径:Path.GetFullPath
获取路径中的文件名(包括后缀):Path.GetFileName
获取路径中目录:Path.GetDirectoryName
这三个方法比较有用,应该着重标注。
六、文件夹/文件是否存在
File.Exist/Directory.Exist
七、文件遍历,目录遍历
DirectoryInfo/FileInfo类中的GetDirectories/GetFiles可以实现
或者调用静态方法Directory.GetDirectories(获取所有的完整目录名),DirectoryGetFiles(获取所有文件的完整文件名)
八、文件删除
删除文件:静态方法File.Delete,类方法FileInfo.Delete
删除目录:静态方法Directory.Delete,类方法DirectoryInfo.Delete(可以给Delete方法传递bool参数表明是否删除子文件夹和文件)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值