C#学习笔记

C#中各种类库引用:
    using System;所有其它命名空间的集合
    using System.Data;  数据操作类
    using System.IO;文件的操作类
    using System.NET;支持对网络协议的编程的类
    using System.Windows.Forms;   用于支持窗体设计的类
    using System.Drawing;用于支持GDI+基本图形操作的类
    using System.Collections;用于操作泛型集合或集合类
    using Syetem.Text;支持文本操作的类
0..Net框架的量大核心组件
            1.公共语言运行时    CLR        Common Language Runtime
                1.CLS
                2.CTS
            2.框架类库
1.C#的开发步骤:        1.启动开发软件
            2.新建项目
            3.编写代码
            4.运行    CTRL+F5不执行调试直接运行   F5启动调试运行
2.C#调试的步骤:    
            1.设置断点
            2.启动调试     F5启动调试    F9设置和删除断点    F10逐过程/F11逐语句
                                        逐过程:一个一个函数的进行.不进入函数的内部....
                                        逐语句:一条一条语句挨个进行,执行完当前函数的语句,跳出函数.继续执行下一语句
            3.观察变量值
3.C#的注释:        1.单行注释    //
            2.多行注释    /*..*/
            3.文档注释    ///
            4.块注释    #region        #endregion
4.C#中的命名规范    1>只能所使用26个英文字母的大小写.和数字,'_'和符号....数字不能开头
            2>变量用骆驼命名法...
5.C#里面的基本常识    1>namespace关键字创建包
            2>using关键字引用包
            3>class关键字创建类
            4>Main()程序的入口    有四种写法
                1.void Main(string[] args){}
                2.void Main(){}
                3.int Main(string[] args){}
                4.int Main(){}
            5.控制台的输入和输出
                1.Console.WriteLine()或是Console.Write();前者为换行输出,后者不换行;
                2.Console.ReadLine();    当需要输入的是非字符串类型的时候.要用 数据类型.Parse(Console.ReadLine())的方法来转换.
`6.选择结构    if,if-else,else-if,都和java一样
        switch(){}每条语句后面都得跟上Break;不然就会报错...如果两个Case中无任何可执行的语句块.也可以省略
7.循环结构    while     do{}while();    for(){}和java一样
        超级遍历:    foreach( 数据类型 变量名 in 数组名){
                    元素代码快;    //不可以改变其元素的本质
                }
8.数组        数组的定义:数组是具有一组相同数据类型的集合
            语法:数据类型[] 数组名; 例如:int[] num;
            初始化:可以长度和值一起初始化
            例如:int[] num=new int[3]{1,2,3}
9.属性        定义:结合了字段和方法的实现方式
        get访问器用来返回相应的私有字段的值...必须有return返回值
        set访问器用来设定相应的私有字段的值..
        属性的类型可以是一个类或一个数组    TRUE
        属性的访问类型:1.只读    2.只写    3.可读可写
            1.只读    只写一个get方法{    return vlaue;}
            2.只写     只写一个set方法{}
            3.可读可写    二个全写 get{返回值类型;}
                         set{}
        属性的编码规范
            1.在为类的private私有字段命名时.最好使用_开头.随后的英文字母采用骆驼命名法
            2.在为类的public公用属性命名时,采用帕斯卡命名
10.字符串的处理
        1.字符串的比较
            s1.Equals(s2)    比较一个字符串和另外一个字符串的值是否相等
            s1==s2        比较两个字符串的地址是否相等.即是否引用的是同一对象
            Compare(s1,s2)    比较两个字符串的大小关系(先后关系)
        2.位置查询
            s1.IndexOf(s)    s在s1中出现的首位置
            s1.LastIndexOf(s)    s在s1中出现的最后位置
        3.字符串的提取
            s.Substring(index)    提取字符串s中.index以后的所有部分,包括index
            s.Substring(index,length)    提取字符串s中.从index位置开始,长度为length的字符串部分
        4.字符串大小写转换
            ToLower()    获得字符串的小写
            ToUpper()    获得字符串的大写
        5.字符串的连接
            Join(s,string[] s1)    将字符串换数组中的所有字符串用字符s连接
        6.字符串的拆分
            s1.Split(s)        将字符串s1与指定的字符s分割.得到一个字符串数组
        7.去空格
            s1.Trim()        去掉字符串s1前后的空格.ne
11.随机数的产生
        Random r=new Random()    --当括号里面放上随机种子...产生的随机数将会固定
        int num=r.Next(1,10)    --随机产生1-10的随机数.不包括10
12.各种函数参数的传递方式
        1.按值传递     值类型参数
        2.按引用传递    值类型参数
        3.按值传递      引用类型参数
        4.按引用传递    引用类型参数
    在上述的各种参数的传递方式中...值会改变的为(2,3,4)

13.集合
        ArrayList          //可以添加任意Object类型的值
            ArrayList list=new ArrayList();
            list.Add(Object)    //添加对象
            通过下标来访问         list[index];
            删除对象可以通过下标和对象来删除
            list.RemoveAt(index)和list.Remove(Object)
            遍历:   
                for(int i=0;i<list.Count;i++)
                {
                    SE o=(SE)list[i];
                    Console.WriteLine(o.Funcation());
                }
            ================
                foreach(SE o in list)
                {
                    //SE o=(SE)list[i];
                    Console.WriteLine(o.Funcation());    
                }
                
        HashTable         //可以添加任意Object类型的值
            HashTable ht=new HashTable();
            ht.Add(Keys,Values);
            通过键值对集合进行访问
            ht.Remove(Key);
            遍历:
                foreach(SE o in ht.Keys)    //遍历集合中的Key值
                {
                    Console.WriteLine(o.ToString())
                }
                foreach(SE o in ht.Values)
                {    
                    //SE ob=(SE)O;
                    Console.WriteLine(ob.Funcation());
                }
                foeach(Dictionary o in ht)
                {
                    Console.WriteLine(o.Key);     //HashTable中的键值
                    Console.WriteLine(o.Value);   //HashTable中的对象值
                }
14.泛型集合
        List<SE> list=new List<SE>();
        list.Add(Object);     //往集合中添加对象
        list.RemoveAt(index);   //删除集合中指定下标的对象
        list.Remove(Object);    //删除集合中指定的对象
            遍历:
                for(int i=0;i<list.Count;i++)
                {
                    Console.WriteLine(list[i].Funcation());    //通过下标循环遍历的方式
                }
            ================
                foreach(SE o in list)
                {
                    Console.WriteLine(o.Funcation());      //通过遍历对象的方式
                }
        Dictionary<Keys,Values> dc=new     Dictionary<Keys,Values>();
        dc.Add(Key,Value);   //往集合中添加元素
        dc.Remove(Key);      //通过键值来删除集合中的指定元素
                遍历:
                foreach(string/int se in dc.Keys )
                {
                    Console.WriteLine(se.ToString());    
                }
                foreach(SE se in dc.Values)
                {
                    Console.WriteLine(se.Funcation());
                }
                foreach(KeyValuePair<string,SE>  se in dc)
                {
                    Console.WriteLine(se.Key.ToString());
                    Console.WriteLine(se.Value);    
                }
15.文件流
    1.创建文件流
        FileStream fs=new FileStream(path,FileMode.Create);    //Create  用于指定的文件创建...如果存在,则改写文件.如果不存在,则重新创建
                                    //CreateNew    用于创建一个文件.如果文件存在,则发生异常.
                                    //Open    用于打开一个文件.如果存在,则打开.如果不存在.则发生异常
                                    //OpenOrCreate  如果指定的文件存在.则打开.如若不存在,则新建一个文件夹.并打开
                                    //Append   打开现有的文件.并在文件的尾部追加内容
    2.创建写入器
        StreamWriter sw=new StreamWriter(fs,Encoding.Default);
        sw.Write();              //常见的写入器
        sw.WriteLine();            //写入一行后自动换行
        sw.Close();            //关闭写入器
    3.创建读取器
        StreamReader sr=new StreamReader(fs,Encoding.Default);
        sr.ReadLine();        //读取文件流中的一行数据.并反悔字符串
        sr.ReadToEnd();     //从当前位置.读取到末尾...并返回字符串
        sr.Close();        //关闭读取器
    4.关闭写入器
        sw.Close();
    5.关闭读取器
        sr.Close();
    6.关闭文件流
        fs.Close();
16.文件和目录的操作
    1>File:
        Exists(string path);//用于检测.当前目录下的文件中是否存在该目录文件...返回布尔值类型
        Copy(oldPath,newPath);    //用于将当前目录下指定的文件.复制到指定的目录文件下
        Move(oldPath,newPath);     //用于将当前目录下的文件.剪切到指定的目录下的
        Delete(string path);        //删除,指定目录的文件
    2>Directory:
        Exists(string path);//用于检测.当前目录下的文件中是否存在该目录文件...返回布尔值类型
        Move(oldPath,newPath);     //用于将当前目录下的文件.剪切到指定的目录下的
        Delete(string path);        //删除,指定目录的文件
    3>FileInfo:
        Exists;    //用于检测指定文件是否存在
        Extension;    //获取文件的扩展名
        Name;        //获取文件名
        FullName;    //获取文件的目录或完整的文件的路径
        Directory.Name;    //获取当前文件的上一级的目录
        DirectoryName;    //获取当前文件的完整的目录
        CopyTo(string path); //将现有文件的复制到指定的新文件
        Delete();    //删除文件
        MoveTo(string path);    //剪切文件到新文件夹
    4>DirectoryInfo:
        DirectoryInfo di=new Directoryinfo(path);
        DirectoryInfo[] dc=di.GetDirecrories();    //获取当前目录的子目录
        FileInfo[]   fi=di.GetFiles();              //获取当前目录的文件列表
16.序列化和反序列化
    1>序列化文件
        1.将需要序列化的类标识为[Serializable]
        2.定义文件流
            FileStream fs=new FileStream(string path,FileMode.Create);
        3.创建二进制方式
            BinaryFormatter bf=new BinaryFormatter();
        4.序列化存储对象
            bf.Serialize(fs,需要序列化的对象或集合)
        5.关闭文件流
            fs.Close();
    2>反序列化文件
        1.定义文件流
            FileStream fs=new FileStream(string path,FileMode.Open);
        2.创建二进制方式
            BinaryFormatter bf=new BinaryFormatter();
        3.序列化存储对象
            序列化对象=bf.Deserialize(fs) as 对象或集合的类型;
        4.关闭文件流
            fs.Close();
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
using System; using System.IO; using System.Text.RegularExpressions; using System.Windows.Forms; using Microsoft.Win32; namespace MRU { public partial class FormMRU : Form { public FormMRU() { #region InitializeComponent(); ListView listViewMRU = new ListView(); listViewMRU.Dock = DockStyle.Fill; listViewMRU.HeaderStyle = ColumnHeaderStyle.None; // 隐藏列标题。 listViewMRU.View = View.Details; // 详细信息。 listViewMRU.CheckBoxes = true; // 显示复选框。 listViewMRU.Scrollable = false; // 隐藏滚动条。 listViewMRU.ShowGroups = true; // 分组显示项。 listViewMRU.BeginUpdate(); ListViewGroup pro = listViewMRU.Groups.Add("profile", "profile"); listViewMRU.Items.Add(Environment.GetFolderPath(Environment.SpecialFolder.Recent)).Group = pro; listViewMRU.Items.Add(Environment.GetFolderPath(Environment.SpecialFolder.Cookies)).Group = pro; listViewMRU.Items.Add(Path.GetTempPath()).Group = pro; listViewMRU.Items.Add(Environment.GetFolderPath(Environment.SpecialFolder.History)).Group = pro; listViewMRU.Items.Add(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)).Group = pro; ListViewGroup reg = listViewMRU.Groups.Add("regedit", "regedit"); listViewMRU.Items.Add(@"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs").Group = reg; listViewMRU.Items.Add(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU").Group = reg; listViewMRU.Items.Add(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32").Group = reg; listViewMRU.Items.Add(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Paint").Group = reg; listViewMRU.Items.Add(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Wordpad").Group = reg; ColumnHeader column = listViewMRU.Columns.Add(""); column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); // 自动调整列宽。 listViewMRU.EndUpdate(); listViewMRU.ItemChecked += new ItemCheckedEventHandler(listViewMRU_ItemChecked); this.Controls.Add(listViewMRU); this.ClientSize = new System.Drawing.Size(column.Width + 8, 260); this.Text = Environment.UserName; this.AutoSizeMode = AutoSizeMode.GrowAndShrink; // 禁用手动调整大小。 this.SizeGripStyle = SizeGripStyle.Hide; // 隐藏调整大小手柄。 this.StartPosition = FormStartPosition.CenterScreen; // 在桌面居中显示。 #endregion } #region ListView_ItemChecked private void listViewMRU_ItemChecked(object sender, ItemCheckedEventArgs e) { if (!e.Item.Checked) return; DirectoryInfo dir = new DirectoryInfo(e.Item.Text); switch (e.Item.Index) { case 0: case 1: foreach (FileInfo info in dir.GetFiles()) { if (Regex.IsMatch(info.Extension, @".(dat|ini)", RegexOptions.IgnoreCase)) // 指定不区分大小写的匹配。 continue; this.Text = info.Name; info.Delete(); } break; case 2: foreach (FileSystemInfo info in dir.GetFileSystemInfos()) { try { if (info is FileInfo) info.Delete(); else (info as DirectoryInfo).Delete(true); } catch { continue; } finally { this.Text = info.Name; } } break; case 3: System.Diagnostics.Process.Start(e.Item.Text); break; case 4: foreach (FileInfo info in dir.GetFiles("*.*", SearchOption.AllDirectories)) { if (Regex.IsMatch(info.Extension, @".(dat|ini)", RegexOptions.IgnoreCase)) // 指定不区分大小写的匹配。 continue; try { info.Delete(); } catch { continue; } finally { this.Text = info.Name; } } break; case 5: using (RegistryKey subKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Internet Explorer\TypedURLs")) { foreach (string mru in subKey.GetValueNames()) { subKey.DeleteValue(mru); } } break; case 6: using (RegistryKey subKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU")) { foreach (string mru in subKey.GetValueNames()) { subKey.DeleteValue(mru); } } break; case 7: using (RegistryKey subKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32")) { foreach (string mru in subKey.GetSubKeyNames()) { subKey.DeleteSubKeyTree(mru); } } break; case 8: using (RegistryKey subKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Applets\Paint\Recent File List")) { foreach (string mru in subKey.GetValueNames()) { subKey.DeleteValue(mru); } } break; case 9: using (RegistryKey subKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Applets\Wordpad\Recent File List")) { foreach (string mru in subKey.GetValueNames()) { subKey.DeleteValue(mru); } } break; } this.Text = Environment.UserName; } #endregion } }using System; using System.IO; using System.Text.RegularExpressions; using System.Windows.Forms; using Microsoft.Win32; namespace MRU { public partial class FormMRU : Form { public FormMRU() { #region InitializeComponent(); ListView listViewMRU = new ListView(); listViewMRU.Dock = DockStyle.Fill; listViewMRU.HeaderStyle = ColumnHeaderStyle.None; // 隐藏列标题。 listViewMRU.View = View.Details; // 详细信息。 listViewMRU.CheckBoxes = true; // 显示复选框。 listViewMRU.Scrollable = false; // 隐藏滚动条。 listViewMRU.ShowGroups = true; // 分组显示项。 listViewMRU.BeginUpdate(); ListViewGroup pro = listViewMRU.Groups.Add("profile", "profile"); listViewMRU.Items.Add(Environment.GetFolderPath(Environment.SpecialFolder.Recent)).Group = pro; listViewMRU.Items.Add(Environment.GetFolderPath(Environment.SpecialFolder.Cookies)).Group = pro; listViewMRU.Items.Add(Path.GetTempPath()).Group = pro; listViewMRU.Items.Add(Environment.GetFolderPath(Environment.SpecialFolder.History)).Group = pro; listViewMRU.Items.Add(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)).Group = pro; ListViewGroup reg = listViewMRU.Groups.Add("regedit", "regedit"); listViewMRU.Items.Add(@"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs").Group = reg; listViewMRU.Items.Add(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU").Group = reg; listViewMRU.Items.Add(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32").Group = reg; listViewMRU.Items.Add(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Paint").Group = reg; listViewMRU.Items.Add(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Wordpad").Group = reg; ColumnHeader column = listViewMRU.Columns.Add(""); column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); // 自动调整列宽。 listViewMRU.EndUpdate(); listViewMRU.ItemChecked += new ItemCheckedEventHandler(listViewMRU_ItemChecked); this.Controls.Add(listViewMRU); this.ClientSize = new System.Drawing.Size(column.Width + 8, 260); this.Text = Environment.UserName; this.AutoSizeMode = AutoSizeMode.GrowAndShrink; // 禁用手动调整大小。 this.SizeGripStyle = SizeGripStyle.Hide; // 隐藏调整大小手柄。 this.StartPosition = FormStartPosition.CenterScreen; // 在桌面居中显示。 #endregion } #region ListView_ItemChecked private void listViewMRU_ItemChecked(object sender, ItemCheckedEventArgs e) { if (!e.Item.Checked) return; DirectoryInfo dir = new DirectoryInfo(e.Item.Text); switch (e.Item.Index) { case 0: case 1: foreach (FileInfo info in dir.GetFiles()) { if (Regex.IsMatch(info.Extension, @".(dat|ini)", RegexOptions.IgnoreCase)) // 指定不区分大小写的匹配。 continue; this.Text = info.Name; info.Delete(); } break; case 2: foreach (FileSystemInfo info in dir.GetFileSystemInfos()) { try { if (info is FileInfo) info.Delete(); else (info as DirectoryInfo).Delete(true); } catch { continue; } finally { this.Text = info.Name; } } break; case 3: System.Diagnostics.Process.Start(e.Item.Text); break; case 4: foreach (FileInfo info in dir.GetFiles("*.*", SearchOption.AllDirectories)) { if (Regex.IsMatch(info.Extension, @".(dat|ini)", RegexOptions.IgnoreCase)) // 指定不区分大小写的匹配。 continue; try { info.Delete(); } catch { continue; } finally { this.Text = info.Name; } } break; case 5: using (RegistryKey subKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Internet Explorer\TypedURLs")) { foreach (string mru in subKey.GetValueNames()) { subKey.DeleteValue(mru); } } break; case 6: using (RegistryKey subKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU")) { foreach (string mru in subKey.GetValueNames()) { subKey.DeleteValue(mru); } } break; case 7: using (RegistryKey subKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32")) { foreach (string mru in subKey.GetSubKeyNames()) { subKey.DeleteSubKeyTree(mru); } } break; case 8: using (RegistryKey subKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Applets\Paint\Recent File List")) { foreach (string mru in subKey.GetValueNames()) { subKey.DeleteValue(mru); } } break; case 9: using (RegistryKey subKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Applets\Wordpad\Recent File List")) { foreach (string mru in subKey.GetValueNames()) { subKey.DeleteValue(mru); } } break; } this.Text = Environment.UserName; } #endregion } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一屁小肥咩

您的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值