zoukankan      html  css  js  c++  java
  • C#新手经验点滴

        对于从其它语言转向C#的朋友来说,C#语言本身并不难。但对于一个C#新手,可能还是有些东东用不惯,可能主要是因为很多以前在其它语言中能轻易找到或使用的东西,一时间不知如何使用。本文的目的,就是希望我的一点经验,对新上手的朋友有一点帮助。


          一、VB中的一些函数
            1、启用外部程序,相当于VB中的Shell

                  System.Diagnostics.Process.Start ();
            2、Applicaiton.DoEvents()相当于VB中的Doevents
            3、当前程序文件的路径:Application.ExecutablePath

         二、对文件名的操作

              (1)System.IO.Path.GetDirectoryName(FileName) 返回路经 。
                 如:GetDirectoryName("c:\test\tmp.txt") 返回 c:\test

              (2)System.IO.Path.GetFileName(FileName) 返回不包含路的文件名。
                 如: GetFileName("c:\test\tmp.txt") 返回 tmp.txt

              (3) System.IO.Path.GetExtension(FileName) 返回 后缀名。
                 如 :GetExtension("c:\test\tmp.txt")返回.txt            

          三、格式化字符串
                下面内容来自网上,作者不知。

           可通过 String.Format 方法或通过 Console.Write 方法格式化数值结果,其中后一种方法调用 String.Format。使用格式字符串指定格式。下表包含受支持的标准格式字符串。格式字符串采用的形式为 Axx,其中 A 为“格式说明符”,而 xx 为“精度说明符”。格式说明符控制应用于数值的格式化类型,而精度说明符控制格式化输出的有效位数或小数位数。

    字符 说明 示例 输出
    C 或 c 货币 Console.Write({0:C}, 2.5);

    Console.Write({0:C}, -2.5);

    $2.50

    ($2.50)

    D 或 d 十进制 Console.Write({0:D5}, 25); 00025
    E 或 e 科学型 Console.Write({0:E}, 250000); 2.500000E+005
    F 或 f 固定点 Console.Write({0:F2}, 25);

    Console.Write({0:F0}, 25);

    25.00

    25

    G 或 g 常规 Console.Write({0:G}, 2.5); 2.5
    N 或 n 数字 Console.Write({0:N}, 2500000); 2,500,000.00
    X 或 x 十六进制 Console.Write({0:X}, 250);

    Console.Write({0:X}, 0xffff);

    FA

    FFFF


            四、根据类名(字符串)创建类的对象实体 
           System.Type cls = System.Type.GetType("System.Windows.Forms.TextBox"); 
           object obj = System.Activator.CreateInstance(cls);  
            这段代码很简单,但适当的时候使用,可以发挥巨大的威力。

            五、Treeview控件的操作
            .net中Treeview控件的设计更加科学,体现在以下两点:
            1、节点集合在VB,VC或Delphi中,TreeView控件的节点集合表现出来只是列表,各节点通过一个key的对应关系来确字节点之间的关系,使用起来也相当麻烦。而在.net中,节点是真正以树的形式进行访问的。TreeView控件有一个Nodes属性,它是Node的集合,而Node对象包含一个Nodes属性,从而形成了一个“节点树”。下面遍历TreeView控件中的所有节点:
        private void GetAllNode(System.Windows.Forms.TreeNodeCollection nodes)
        {
             foreach(System.Windows.Forms.TreeNode node in nodes)
             { 
                   Console.WriteLine(node.Text);
                   GetAllNode(node.nodes) //递归查找
             }
        }
    真简单啊。
            2、Tag属性
            在使用TreeView的过程中,往往需要给节点更多的附加信息。在VB中,只有一个字符串类型的Tag属性可供使用,经常不够使用。在.net中,节点也有一个Tag属性,但它的类型是object,这意味着我们可以将任意一种对象实体赋给该属性,这无疑给我们的开发带来了极大的方便。(在Delphi 中,也提供了这个特性)。

         六、IsNumeric函数
         C#中并未提供判断一个字符串是否为数值类型的函数,但可以利用正则表达式达到同样的目的。下面的函数供参考:
          public static bool IsNumeric(string str)
          {   
               if(str != null && Regex.IsMatch(str,@"^[-]?\d+[.]?\d*$"))
                    return true;
               else
                    return false;
          }  

         七、C#中自定义事件
         在C#中为一个类自定义事件,看起来比较麻烦,实战起来是很简单的,只需经过以下三个步骤:
        1、定义一个代理:
            public delegate void MyEvent(object sender);
            注意代理与要使用该事件的类是“平级”的,所以它不能放在类里面。
            参数的类型和个数可以根据需要自行更改。
        2、定义一个event
            public event MyEvent MyEventHandler;
            该event的定义属于类的成员
        3、在需要激发事件的地方执行上面定义的event
            if (MyEventHandler != null)
                MyEventHandler(sender);

         完成。是不是真的很简单啊? 

         八、取得目录下的所有文件
        System.IO.Directory.GetFiles
       
         
       

  • 相关阅读:
    二开案例.开发环境.从零开发第一个插件和数据字典
    二开案例.开发环境.调试插件代码
    C#中@的用法总结
    金蝶云社区年度资料合辑
    MySQL知识框架[博文汇总-持续更新]
    Redis基础篇(五)AOF与RDB比较和选择策略
    Redis基础篇(四)持久化:内存快照(RDB)
    单调栈技巧总结
    Redis基础篇(三)持久化:AOF日志
    Redis基础篇(二)高性能IO模型
  • 原文地址:https://www.cnblogs.com/watsonyin/p/127679.html
Copyright © 2011-2022 走看看