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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步