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

  1、DataTable.HasRows

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

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())
{

}

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

  2、ToTitleCase

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

  当前的文化

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

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

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

  3、显性和隐性接口实现

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

public interface IMyInterface
{
void MyMethod(string myString);
}
public MyImplicitClass: IMyInterface
{
public void MyMethod(string myString)
{
///
}
}
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("");

  4、Auto属性

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

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

private double _total;
public double Total
{
get { return _total;}
set { _total = value;}
}

  就变成了:

public double Total { get; set; }

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

  5、强大的Path.Combine

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

  图 1 Path.Combine方法

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

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

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

  图 2 可覆写方法列表

  7、使用扩展的配置文件

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

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

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

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

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

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

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

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

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

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

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

  与此类似,当你在设计视图中,选中元素,然后切换到代码视图,你选中的元素对应的HTML代码应该是高亮状态。

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

  虽然数据表支持Find和Select方法选择行,但它们都没有DataView的方法好用,DataView提供了一个FindRows方法,它可以使用排序列上创建的索引,因此速度更快。

  希望这些技巧可以帮助你节省宝贵的编程时间,赶快去试试吧!

一起谈.NET技术,Visual Studio与C#编程十个实用技巧相关推荐

  1. Visual Studio与C#编程十个实用技巧

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

  2. linux c 并行编程从入门到精通,VISUAL STUDIO 2010并行编程从入门到精通(微软技术丛书)...

    摘要: <微软技术丛书:Visual Studio2010并行编程从入门到精通>循序渐进,步骤式动手练习迅速帮助读者掌握并行编程的基础知识. <微软技术丛书:Visual Studi ...

  3. Visual Studio 2005 插件编程(代码行数统计插件)之一

    原文:http://www.codeproject.com/useritems/LineCounterAddin.asp 注意:1.本文中的提到的"外接程序"等同与"插件 ...

  4. C#,入门教程(04)——Visual Studio 2022 数据编程实例:随机数与组合

    上一篇: C#,入门教程(03)--Visual Studio 2022编写彩色Hello World与动画效果https://blog.csdn.net/beijinghorn/article/de ...

  5. Visual Studio 2022 c#中很实用的VS默认快捷键和原生功能

    常常使用VS感觉还是有必要掌握其默认的快捷键,我这个人比较懒,不喜欢动不动就去设置快捷键,系统有就用,记住了就可以到处用,问题是像我们这种有很多个工作场所的人不可能每台电脑都去配置一下快键键.实际上我 ...

  6. 一起谈.NET技术,.NET并行(多核)编程系列之七 共享数据问题和解决概述

    之前的文章介绍了了并行编程的一些基础的知识,从本篇开始,将会讲述并行编程中实际遇到一些问题,接下来的几篇将会讲述数据共享问题. 本篇的议题如下: 1.数据竞争 2.解决方案提出 3.顺序的执行解决方案 ...

  7. Microsoft Visual Studio + Qt插件编程出现错误error MSB4184问题

    今天发现一个问题,VS2017+qt插件,Debug模式下出现错误(Release模式没有问题): C:\Users\Administrator\AppData\Local\QtMsBuild\qt_ ...

  8. Visual Studio 2013 MFC 编程

    一.创建MFC项目 创建MFC项目时,高级功能一般默认即可,但如果用不上"ActiveX 控件"可以去掉勾选:如果需要涉及网络编程就把 "Windows 套接字" ...

  9. 闲心之谈之虚拟货币系列:1、KDJ图实用技巧

    1.KDJ图 K线:趋势分析看10和90位置 D线:超买超卖分析看20和80位置 J线:短期线100和0位置 实用场景: 实用技巧1: 实用技巧: 金叉.死叉: K线:趋势分析看10和90位置 结合最 ...

最新文章

  1. 学python培训到底能干嘛
  2. 嵌入式多媒体设计7--QDockWidget大小调整及隐藏标题
  3. 勒索病毒一周记:它让我们得到了什么经验教训?
  4. 网页实时聊天之PHP如何实现websocket
  5. java中io.nio.aio_Java中网络IO的实现方式-BIO、NIO、AIO
  6. android 怎么获取app 字体颜色,android app 修改字体
  7. 哈工程816计算机专业考研资料,哈尔滨工程大学计算机科学与技术学院816计算机专业基础综合(自命题①数据结构,②计算机组成原理)历年考研真题汇编.pdf...
  8. 从语音识别到语义识别还有多少路要走?
  9. office2010每次打开都要配置进度的解决方案
  10. 向量与矩阵的简单运算
  11. 用众城计算机弹学猫叫,19年真男神当众被逼学猫叫?谁能把我的童年还给我!...
  12. 淘宝API-item_search - 按关键字搜索淘宝商品
  13. 期货市场的竞争与创新发展及其启示
  14. oracle安装使用
  15. html渐变色css3渐变,css3渐变
  16. 带联网功能的RFID宿舍门禁(六)-两年后的再次总结
  17. 敬业签苹果ios手机便签里的完成记录如何筛选查看
  18. CXF框架的一些问题
  19. 19岁少年开发浏览器插件赚到10万美元
  20. UE4安装及环境搭建

热门文章

  1. Tomcat 设置运行日志
  2. 简单选择排序--转载
  3. Mina2中IoService
  4. 《Java核心技术卷一》p60~p70 学长教我学Java(7)
  5. urlrewrite 地址重写
  6. [原创]浅谈在创业公司对PMF的理解
  7. javascript 之 面向对象【理解对象】
  8. python中with语句的使用
  9. cmd命令:在ftp下载文件运行
  10. .Net连接Sybase数据库的几种方法[转]