C#编程和Visual Studio使用技巧(下)

如果你通过搜索引擎发现这篇文章的,我建议你先看看本系列的第一篇,这是本系列文章的第二篇,今天为大家带来更丰富的C#和Visual Studio编程技巧,一起来看看吧。

推荐:《10个C#编程和Visual Studio使用技巧》(上)

1、DataTable.HasRows

它不属于任何框架,但通过扩展方法很容易模仿这样一个方法,它不会消除检查数据表对象是否为空或行数的原始代码,但它可以简化应用程序的代码,下面是一个代码片段:

<CODE>
public static bool HasRows(this DataTable dataTable)
  {
return dataTable.IsNull() ? false : (dataTable.Rows.Count > 0);
  } 

 public static bool IsNull(this object o)
  {
   return (o == null);
  } 

 To use:
 If(dataTable.HasRows())
 {
 …
 }
  </CODE>

其它规则仍然和扩展方法相同。

2、ToTitleCase

这个方法可以将每个单词的首字母转换为大写,剩下的字母转换为小写,例如,“look below for a sample”将被转换为“Look Below For A Sample”,TextInfo是System.Globalization命名空间的一部分,但它存在以下问题:

当前的文化

如果输入字符串全部是大写

下面的扩展方法同时考虑了这两个缺陷。

<CODE>
public static string ToTitleCase(this string inputString)
  {
   return Thread.CurrentThread.CurrentCulture.TextInfo.
ToTitleCase((inputString ?? string.Empty).ToLower());
 }
  </CODE>

3、显性和隐性接口实现

这很重要吗?是的,非常重要,你知道它们之间的语法差异吗?其实它们存在根本性的区别。类上的隐性接口实现默认是一个公共方法,在类的对象或接口上都可以访问。而类上的显性接口实现默认是一个私有方法,只能通过接口访问,不能通过类的对象访问。下面是示例代码:

<CODE> 

 INTERFACE
 public interface IMyInterface
 {
 void MyMethod(string myString);
 } 

 CLASS THAT IMPLEMENTS THE INTERFACE IMPLICITLY
 public MyImplicitClass: IMyInterface
 {
 public void MyMethod(string myString)
 {
 ///
 }
 } 

 CLASS THAT IMPLEMENTS THE INTERFACE EXPLICITLY
 public MyExplicitClass: IMyInterface
 {
 void IMyInterface.MyMethod(string myString)
 {
 ///
 }
 } 

 MyImplicitClass instance would work with either the class or the Interface:
 MyImplicitClass myObject = new MyImplicitClass();
 myObject.MyMethod("");
 IMyInterface myObject = new MyImplicitClass();
 myObject.MyMethod(""); 

 MyExplicitClass would work only with the interface:
 //The following line would not work.
 MyExplicitClass myObject = new MyExplicitClass();
 myObject.MyMethod("");
 //This will work
 IMyInterface myObject = new MyExplicitClass();
 myObject.MyMethod(""); 

 </CODE>

4、Auto属性

它是替换包含一个公共,两个私有成员属性的最好办法。

按下两次Tab键(需要开启代码片段功能),一个Auto属性就创建好了,再按Tab键Auto属性取一个名字。下面这段代码

<CODE>
 private double _total;
 public double Total
 {
 get { return _total; }
 set { _total = value; }
 }
 </CODE>

就变成了

<CODE>
public double Total { get; set; }
 </CODE>

注意你仍然可以根据你的设计应用访问说明符,编译器应该会为你创建私有成员变量。

5、强大的Path.Combine

Path.Combine凭借强大的功能消除了尾斜线和路径相关的问题,简单易用,让路径字符串更连续,它包含一个字符串路径参数。

你不用担心路径中的有效分隔符或空格,完全不用你处理路径合并时的字符串连接。

6、在类中编写“Override”方法的快速方法

在代码编辑器中输入override,按空格键,你将会看到一串基于类的可覆写方法,如图2所示。

图1  可覆写方法列表

7、使用扩展的配置文件

感谢app.config(针对应用程序)和web.config配置文件,使我们可以处理复杂的应用程序级设置,但是我们仍然要处理不同环境设置面临的各种问题,这里指的是开发、测试和生产环境的设置。

我们不得不恢复到一个特定的环境以便进行分析、测试或调式部分代码,在这个过程中,每一次设置和调整都很乏味。

例如,每一次恢复可能都要重新设置ConnectionStrings(连接字符串),现在你可以通过外部文件引用使用ConfigSource属性来解决这个问题。例如,下面的代码引用了一个deveploment.config外部配置文件。

<connectionStrings configSource="configs\ development.config" />

你还可以在AppSettings设置小节使用这个有用的属性。

8、克服String.Split方法的局限

String.Split是分隔字符串最理想的方法,但据我们所知,它也有一些限制,如不能使用“||”或“::”这样的字符,必须使用键盘上独一无二的单个字符作为分隔符,这个缺点可以使用RegEx库提供的Split方法来克服掉,下面的代码显示了使用RegEx Split分隔一个“||”分隔字符串。

<CODE>
string delimitedString = "String.Split || RegEx.Split");
string[] ouputString = System.Text.RegularExpressions.Regex.Split(
 delimitedString,
 , System.Text.RegularExpressions.Regex.Escape("||"));
 </CODE>

9、元素的HTML代码视图和设计视图之间的快速切换(反之亦然)

在设计应用程序时,我们在IDE上花费的时间很多,大部分时间都耗在HTML内容和设计视图上,Visual Studio 2010提供了设计视图和HTML代码之间快速切换的功能。

如果你在HTML视图中,定位你想在设计视图中查看的元素,然后切换到设计视图,你想查看的元素应该处于选中状态,此外,属性窗口现在也应该显示的是选中元素的属性。
与此类似,当你在设计视图中,选中元素,然后切换到代码视图,你选中的元素对应的HTML代码应该是高亮状态。

10、快速搜索数据库中的数据

虽然数据表支持Find和Select方法选择行,但它们都没有DataView的方法好用,DataView提供了一个FindRows方法,它可以使用排序列上创建的索引,因此速度更快。
希望这些技巧可以帮助你节省宝贵的编程时间,赶快去试试吧!

(0)

相关推荐

  • Visual Studio调试技巧汇总

    调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 1 悬停鼠标查看表达式值 调试是很有挑战性的.比如在函数内逐步运行可以看出哪里出错,查看堆栈信息可以知道函数被谁调用等等. 但是无论哪种情况下,查看表达式和局部变量的值都是很麻烦的(把表达式和局部变量放到watch窗口里). 一种更简单的方法,把鼠标停在所需查看的数据上.如果是类或结构,那么点击展开可以很方便快速地

  • 利用Typings为Visual Studio Code实现智能提示功能

    前言 相信大家都知道在IDE中代码的智能提示几乎都是标配,虽然一些文本编辑器也有一些简单的提示,但这是通过代码片段提供的.功能上远不能和IDE相比.不过最近兴起的文本编辑器的新锐 Visual Studio Code 可以通过 Typings 来对 JavaScript 实现智能提示功能,对于一个文本编辑器来说,这点很难得.所以Visual Studio Code 特别适合用来编写 JavaScript(Node.js)程序; 同时,如果我们需要编写一些尝试性的小代码片段,例如:Lodash.j

  • 分享Visual Studio原生开发的10个调试技巧(2)

    之前关于Visual Studio调试技巧的文章引起了大家很大的兴趣,以至于我决定分享更多调试的知识.以下的列表中你可以看到写原生开发的调试技巧(接着以前的文章来编号).这些技巧可以应用在VS2005或者更新版本中(当然有一些可以适用于旧版本).如果你继续,你可以知道每个技巧的详细信息. 技巧11:数据断点 当数据所在内存位置变化时,调试器将会中断.然而,这是唯一可能在一个时间创建4这样的硬件的数据断点.数据断点只能在编译的过程中添加,可以通过菜单(编译>新断点>新数据断点)或者通过断点窗口来

  • C#编程和Visual Studio使用技巧(上)

    对开场白没兴趣?好吧,我们直接切入正题,下面介绍10个C#编程和Visual Studio IDE使用技巧. 1.Environment.Newline 你是否知道这个属性是与平台无关的?允许你根据每个平台输出新的换行字符. Console.WriteLine("My Tips On ,{0}C#", Environment.NewLine); 2.命名空间别名 你是否知道可以使用更短的别名代替长的命名空间?你是否遇到过需要限制完整的命名空间以避免产生歧义?看下面的代码示例,它是使用扩

  • C#中几个未知的Visual Studio编码技巧分享

    用了多年的Visual Studio,今天才发现这个编码技巧,真是惭愧,分享出来,算是抛砖引玉吧! 开发环境: vs2010+C# 1.代码重构新建类 如果你还像我以前一样使用右键快捷菜单新建类,那就太Out了.VS的那个"新建项对话框"出来的很慢,很影响心情.当你发现需要定义一个类时,正确的方法:1)在当前代码处定义上类名,例如:List<NewClass> ls; 2)焦点移动到NewClass处,按下ctrl + .("点")3)回车.这样类就建好

  • 分享Visual Studio原生开发的10个调试技巧

    最近碰巧读了Ivan Shcherbakov写的一篇文章,<11个强大的Visual Studio调试小技巧>.这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧.我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧.(如果你是工作在托管代码下,调试器会有更多的特性,在CodeProject中有介绍它们的文章),下面是我的整理的一些技巧: 异常中断 | Break on Exception Watch窗口中的伪变量 |

  • C#编程和Visual Studio使用技巧(下)

    如果你通过搜索引擎发现这篇文章的,我建议你先看看本系列的第一篇,这是本系列文章的第二篇,今天为大家带来更丰富的C#和Visual Studio编程技巧,一起来看看吧. 推荐:<10个C#编程和Visual Studio使用技巧>(上) 1.DataTable.HasRows 它不属于任何框架,但通过扩展方法很容易模仿这样一个方法,它不会消除检查数据表对象是否为空或行数的原始代码,但它可以简化应用程序的代码,下面是一个代码片段: <CODE> public static bool H

  • C语言创建动态dll和调用dll(visual studio 2013环境下)

    第一部分:创建动态dll库. 1.打开visual studio 创建一个控制台应用程序. 2.选择DLL,空项目. 3.点击源文件,创建一个main.c文件 4.在main.c中写入一个简单的函数,内容如下: __declspec(dllexport) int mymax(int a,int b){ return a + b; } 5.编译生成. 6.在项目的目录有dll和lib两个生成好的文件. 第二部分:在新建项目中使用dll. 7.新建一个c的控制台应用程序UseDll,把Dll.dll

  • Visual Studio 2017 离线安装教程

    Visual Studio 2017 离线安装方式整理一份给大家,希望大家喜欢. Visual Studio, 特别是Visual Studio 2017 通常是一个在线安装程序,如果你在安装过程中失去连接,你可以遇到问题.但是,由于法律原因,微软没有提供完整的可下载的ISO镜像.他们不能将Android安装程序从Google打包到ISO中.用户需要自己动态下载某些内容. 幸运的是,有一些方法可以引导我们来完成离线安装程序.这种安装方式可用于创建USB安装或DVD安装盘. 首先,登陆http:/

  • Visual Studio 2013+OpenCV2.4.10环境搭建教程

    Opencv是一个使用起来非常方便的开放视觉库.本文详细讲解如何在Win8.1+Visual Studio 2013环境下配置Opencv2.4.10 工具:Opencv2.4.10 方法/步骤: 这里用的Opencv版本是2.4.10,可以在Opencv的官网上免费下载.软件大小约为350M. 下载完毕后,双击打开"opencv-2.4.10",选择解压目录.我这里选择解压目录为D盘.确认解压目录后,点击"Extract".解压完成后,在opencv文件夹中生成两

  • Windows下用PyCharm和Visual Studio开始Python编程

    Windows搭建python开发环境 首先需要去python的官网下载环境.鼠标移动到Downloads的tab上,在这里可以下载. python的环境还是很人性化的,没有那么多罗里吧嗦的配置什么的,下载好以后直接无脑next就行了,直到finish. Python IDE 优秀的Python IDE有很多,这里我就介绍几款相对我来说比较常用的!排名不分先后! pycharm VIM Eclipse with PyDev Sublime Text Komodo Edit PyScripter

随机推荐