10个C#编程和Visual Studio 2010 使用技巧

1、Environment.Newline
你是否知道这个属性是与平台无关的?允许你根据每个平台输出新的换行字符。
[pre]

  1. Console.WriteLine("My Tips On ,{0}C#", Environment.NewLine);
[/pre] 2、命名空间别名
你是否知道可以使用更短的别名代替长的命名空间?你是否遇到过需要限制完整的命名空间以避免产生歧义?看下面的代码示例,它是使用扩展的.NET Framework控件创建的一个通用库。
[pre]
  1. using System.Web.UI.WebControls;
  2. using MyGenericLibrary.UserControls;
  3. /* Assuming that you had a Text Box control in both the namespace, you would have to fully qualify the class object with the complete namespace.To avoid that, you can use namespace alias. Change as below */
  4. using System.Web.UI.WebControls; using mc = MyGenericLibrary.UserControls;
  5. /*and then use, /*
  6. mc.TextBox textbox = new mc.TextBox();
[/pre] 3、DebuggerBrowsable属性
每个C#开发人员应该都有过程序调试的经历,这个属性在调试期间控制对象行为的能力非常强大,在调试过程中它在一个小提示窗口中显示对象,它可以用于隐藏私有成员或在调试窗口中显示也是多余的成员,例如,当你调试类对象时,在调试窗口中你可以看到私有变量,这个时候你就可以使用[DebuggerBrowsable(DebuggerBrowsableState.Never)]属性来隐藏它们,下面是可见的代码。
[pre]
  1. public class MyClass
  2. { private string _id;
  3. public string InternalID
  4. { get { return _id; }
  5. set { _id = value; } }
  6. }
[/pre]下面是使之隐藏的代码:
[pre]
  1. [DebuggerBrowsable(DebuggerBrowsableState.Never)]
  2. public class MyClass {
  3. private string _id;
  4. public string InternalID {
  5. get { return _id; } set { _id = value; }
  6. } }
[/pre] 4、DebuggerDisplay属性
这个属性可让具有可读描述的变量对象显示出来,它有助于提供团队其它成员未来阅读代码的效率,它的用法也是非常简单的,下面的代码示例显示了变量的值。
[pre]
  1. public class MyClass
  2. { [DebuggerDisplay("Value = {myVariable}")]
  3. public string myVariable = "mydisplay"; }
[/pre] 5、为项目创建虚拟目录
你可以强制每个开发人员在本地为项目创建一个同名的虚拟目录,这个来自Visual Studio IDE的技巧将有助于代码在多个C#开发人员的电脑之间同步。在项目名称上点击右键,选择“属性”,在“Web”选项卡中,选中“使用本地IIS Web服务器”选项,然后为其指定一个虚拟路径,如下图所示。

图 1 设置项目的本地虚拟目录路径
这样设置后,所有使用该项目文件的开发人员都会收到一个要求,在本地机器上创建一个同名的虚拟目录。
6、改变项目平台
你可以改变应用程序的生成目标平台,这里的平台指的是32位和64位环境,在项目名称上点击右键,选择“属性”,在“Build”选项卡中,选择需要的目标平台,如下图所示。

图 2 修改项目的目标平台
7、代码定义窗口
这个窗口允许你跳转到对象的定义,你可以按F12键快速跳转到对象的定义位置,在代码编辑器的任意对象上试试这个功能,相信一定不会让你失望的。此外,还有一个专门的代码定义窗口,当你按照Ctrl+W,D组合键时就会弹出一个代码定义窗口。
[pre]
  1. if (e.Item.ItemType == ListItemType.Item )
  2. { //Your code here.
  3. }
[/pre]如果你将光标停留在ListItemType上面,然后按下组合键,你将会看到如下图所示的一个窗口。

图 3 代码定义窗口
8、Null合并运算符
Null合并运算符允许你以很简洁的方式比较空值,它使用两个问号表示。例如,myfunction返回的值可能是一个空的整数值,在这种情况下,你可以使用合并运算符快速检查它是否为空,然后返回一个代替值。
[pre]
  1. int myExpectedValueIfNull = 10;
  2. int expectedValue = myfunction() ?? myExpectedValueIfNull
[/pre] 9、using语句快捷键
按下Ctrl+.会弹出一列可用的using语句,使用箭头键进行移动,按下回车键确认选择,如下图所示。

图 4 在代码编辑器中快速调出using语句
10、寻找恐怖的数据集合并错误根本原因
你是否遇到过无法找出数据集合并错误的原因?现在有办法了,使用try-catch将你的代码包围起来,最好是在异常处理块中观察特定代码的输出,可以准确捕捉到合并失败的原因。
[pre]
  1. StringBuilder error Messages = new StringBuilder();
  2. try {
  3. DataSet dataSet1 = populateDataSet(1); DataSet dataSet2 = populateDataSet(2);
  4. dataset1.Merge(dataset2);
  5. } catch (System.Data.DataException de)
  6. { foreach (DataTable myTable in dataSet1.Tables)
  7. { foreach (DataRow myRow in myTable.GetErrors())
  8. { foreach (DataColumn myColumn in myRow.GetColumnsInError())
  9. { //loop through each column in the row that has caused the error
  10. //during the bind and show it. error Messages .Append(string.Format(
  11. "Merge failed due to : {0}", myColumn.GetColumnError(myColumn))); }
  12. } }
  13. }

 

原文连接:http://cxy.uueasy.com/read-htm-tid-1097.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值