最新消息:20210917 已从crifan.com换到crifan.org

【记录】C#学习心得

C# crifan 2790浏览 0评论

本帖内容已移至:各种计算机语言简介和总结 – C#学习心得


 

1.C#中的正则表达式处理,对应的是Regex类

C#中的Regex类处理正则表达式。

1.1正则表达式中包含双引号,是用两个双引号去表示

其中如果包含的字符串中包含双引号,那么就两个双引号表示,而不是反斜杠加上双引号(\”),也不是斜杠加上双引号(/”)。示例代码:

string pat = @"var\s+primedResponse=\{""items""\:\[\{(.*)}\]\};\s+\$Do\.register\(""primedResponse""\);";
Regex rx = new Regex(pat,RegexOptions.Compiled);

2.C#中的TreeView控件

2.1 添加Node的方法:

当前已有一个TreeView控件trvFolder,添加节点的代码如下:

TreeNode curNode = new TreeNode(name);
trvFolder.Nodes.Add(curNode);

2.2给TreeView添加图标

先拖拽出来一个ImageList控件iglIcons,然后手动编辑ImageList的Images属性Collection,添加几个小图片。

对应的index分别是0,1,2,。。。,然后用:

trvFolder.ImageList = iglIcons;

将其关联到当前TreeView控件trvFolder。

最后,每次添加TreeNode的时候,多加一句:

curNode.ImageIndex = 0;

即为:

TreeNode curNode = new TreeNode(name);
curNode.ImageIndex = 0;
trvFolder.Nodes.Add(curNode);

其中0为图片的index,可根据自己的实际情况改为对应的index。

这样就可以实现给不同的TreeNode添加对应的图标了。

3.C#中的字典类型变量

C#中也有类似于Python中的字典类型的变量

参考代码如下:

        Dictionary<String, int> dicPicIdx;
        Dictionary<string, int>.KeyCollection dicKeys;

        dicPicIdx = new Dictionary<string, int>();
        dicPicIdx.Add("EmptyDocumentFolder", 1);
        dicPicIdx.Add("NonEmptyDocumentFolder", 1);

        dicPicIdx.Add("NonEmptyAlbum", 3);
        dicPicIdx.Add("EmptyAlbum", 3);

        dicPicIdx.Add("NonEmptyFavoriteFolder", 4);
        dicPicIdx.Add("EmptyFavoriteFolder", 4);

        dicPicIdx.Add("Photo", 6);
        dicPicIdx.Add("Audio", 7);
        dicPicIdx.Add("Video", 8);

        dicKeys = dicPicIdx.Keys;

 

4.C#中类似于spritf的函数

C#中,类似于C中常用的spritf函数,是String.Format函数。

最简单的用法举例如下:

string spritfTestStr = String.Format("Test sprintf in C#, number={0:D}, string=\"{1:s}\", float={2:0.000}", 100, "crifan", Math.PI);
//spritfTestStr = Test sprintf in C#, number=100, string="crifan", float=3.142

关于Format函数的更多的示例,可以参考微软官方文档:

String.Format Method (String, Object)

关于其他更多不同类型的参数,比如日期,数值,枚举等,如何指定对应的格式,可以参考:

 

5.关于UrlEncode把空格编码为加号“+”而不是%20的问题

默认的HttpUtility.UrlEncode会把空格编码为加号,而不是很多人所期望的%20,导致很多人以为函数出了问题呢。其实,微软官方文档HttpUtility.UrlEncode 方法中,已经解释了此问题:

您可以使用 UrlEncode 方法或 UrlPathEncode 方法对 URL 编码。但是,方法返回不同的结果。UrlEncode 方法将每个空格字符转换为加号 (+) 字符。UrlPathEncode 方法将每个空格字符转换为字符串 “%20″,它表示一个用十六进制表示法表示的空格。在对 URL 的路径部分编码时使用 UrlPathEncode 方法,以保证一致的已解码 URL,与执行解码的平台或浏览器无关。

所以,想要把空格编码为%20,用UrlPathEncode即可。

 

【参考资料】

正则表达式包含引号怎么办?

http://tech.techweb.com.cn/thread-236996-1-1.html

c# Regex常用

http://www.cnblogs.com/jorgen/archive/2010/10/14/1851555.html

c#学习笔记《1》——regex类(个人理解)

http://hi.baidu.com/wenyouming1989/blog/item/c0d1f95a1e296cd39c8204b4.html

为 Windows 窗体 TreeView 控件设置图标

http://msdn.microsoft.com/zh-cn/library/aa983725

winform中利用Treeview模仿资源管理器实现图片文件列表

http://blog.csdn.net/mngzilin/article/details/5535136

C#键值对容器

http://lujian811.blog.163.com/blog/static/10190113201071933020824/

转载请注明:在路上 » 【记录】C#学习心得

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

    95 queries in 0.201 seconds, using 23.37MB memory