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

作者:lijiao 时间:2021-10-01 00:54:27 

对开场白没兴趣?好吧,我们直接切入正题,下面介绍10个C#编程和Visual Studio IDE使用技巧。

1、Environment.Newline

你是否知道这个属性是与平台无关的?允许你根据每个平台输出新的换行字符。


Console.WriteLine("My Tips On ,{0}C#", Environment.NewLine);

2、命名空间别名

你是否知道可以使用更短的别名代替长的命名空间?你是否遇到过需要限制完整的命名空间以避免产生歧义?看下面的代码示例,它是使用扩展的.NET Framework控件创建的一个通用库。


using System.Web.UI.WebControls;
using MyGenericLibrary.UserControls;

/* 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 */

using System.Web.UI.WebControls;
using mc = MyGenericLibrary.UserControls;

/*and then use, /*
mc.TextBox textbox = new mc.TextBox();

3、DebuggerBrowsable属性

每个C#开发人员应该都有过程序调试的经历,这个属性在调试期间控制对象行为的能力非常强大,在调试过程中它在一个小提示窗口中显示对象,它可以用于隐藏私有成员或在调试窗口中显示也是多余的成员,例如,当你调试类对象时,在调试窗口中你可以看到私有变量,这个时候你就可以使用[DebuggerBrowsable(DebuggerBrowsableState.Never)]属性来隐藏它们,下面是可见的代码。


public class MyClass
{
  private string _id;

public string InternalID
  {
     get { return _id; }
     set { _id = value; }
  }
}

下面是使之隐藏的代码:


[DebuggerBrowsable(DebuggerBrowsableState.Never)]
public class MyClass
{
  private string _id;

public string InternalID
  {
     get { return _id; }
     set { _id = value; }
  }
}

4、DebuggerDisplay属性

这个属性可让具有可读描述的变量对象显示出来,它有助于提供团队其它成员未来阅读代码的效率,它的用法也是非常简单的,下面的代码示例显示了变量的值。


public class MyClass
{
  [DebuggerDisplay("Value = {myVariable}")]
  public string myVariable = "mydisplay";
}

5、为项目创建虚拟目录

你可以强制每个开发人员在本地为项目创建一个同名的虚拟目录,这个来自Visual Studio IDE的技巧将有助于代码在多个C#开发人员的电脑之间同步。在项目名称上点击右键,选择“属性”,在“Web”选项卡中,选中“使用本地IIS Web服务器”选项,然后为其指定一个虚拟路径。

这样设置后,所有使用该项目文件的开发人员都会收到一个要求,在本地机器上创建一个同名的虚拟目录。

6、改变项目平台

你可以改变应用程序的生成目标平台,这里的平台指的是32位和64位环境,在项目名称上点击右键,选择“属性”,在“Build”选项卡中,选择需要的目标平台,如下图所示。

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

图1 修改项目的目标平台

7、代码定义窗口

这个窗口允许你跳转到对象的定义,你可以按F12键快速跳转到对象的定义位置,在代码编辑器的任意对象上试试这个功能,相信一定不会让你失望的。此外,还有一个专门的代码定义窗口,当你按照Ctrl+W,D组合键时就会弹出一个代码定义窗口。


if (e.Item.ItemType == ListItemType.Item )
{
  //Your code here.
}

如果你将光标停留在ListItemType上面,然后按下组合键,你将会看到如下图所示的一个窗口。

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

图2  代码定义窗口

8、Null合并运算符

Null合并运算符允许你以很简洁的方式比较空值,它使用两个问号表示。例如,myfunction返回的值可能是一个空的整数值,在这种情况下,你可以使用合并运算符快速检查它是否为空,然后返回一个代替值。


int myExpectedValueIfNull = 10;
int expectedValue = myfunction() ?? myExpectedValueIfNull

9、using语句快捷键

按下Ctrl+.会弹出一列可用的using语句,使用箭头键进行移动,按下回车键确认选择。

10、寻找恐怖的数据集合并错误根本原因

你是否遇到过无法找出数据集合并错误的原因?现在有办法了,使用try-catch将你的代码包围起来,最好是在异常处理块中观察特定代码的输出,可以准确捕捉到合并失败的原因。


StringBuilder error Messages = new StringBuilder();
 try
 {
      DataSet dataSet1 = populateDataSet(1);
 DataSet dataSet2 = populateDataSet(2);

dataset1.Merge(dataset2);
           }
           catch (System.Data.DataException de)
           {
  foreach (DataTable myTable in dataSet1.Tables)
  {
    foreach (DataRow myRow in myTable.GetErrors())
    {
     foreach (DataColumn myColumn in myRow.GetColumnsInError())
     {
       //loop through each column in the row that has caused the error
       //during the bind and show it.
        error Messages .Append(string.Format(
        "Merge failed due to : {0}", myColumn.GetColumnError(myColumn)));
     }
    }
  }
          }

小结

希望你能灵活运用这些C#编程和Visual Studio技巧,享受写代码的乐趣,大家多多交流,一起进步

标签:C#,visualstudio,使用技巧
0
投稿

猜你喜欢

  • java实现清理DNS Cache的方法

    2022-07-27 23:11:50
  • mybatis教程之延迟加载详解

    2023-02-19 12:45:18
  • SpringBoot使用jasypt加解密密码的实现方法(二)

    2021-10-15 14:16:46
  • Java中线程安全问题

    2021-12-02 05:51:59
  • C#实现获取设置IP地址小工具

    2022-08-21 18:06:48
  • 解决IDEA无法下载maven依赖的问题

    2023-12-05 17:06:59
  • 详解Android中的Context抽象类

    2023-01-19 16:21:23
  • 浅谈java中对集合对象list的几种循环访问

    2022-02-11 02:32:33
  • 深入了解Spring中最常用的11个扩展点

    2023-07-05 17:46:40
  • springboot bean循环依赖实现以及源码分析

    2022-06-05 11:50:15
  • mybatis-generator自动生成dao、mapping、bean配置操作

    2023-08-17 14:05:30
  • 解决Java中socket使用getInputStream()阻塞问题

    2022-06-16 14:33:14
  • Java List转换成String数组几种实现方式详解

    2023-11-10 07:19:41
  • SpringBoot实现异步事件驱动的方法

    2023-11-01 07:48:54
  • Spring Boot之AOP配自定义注解的最佳实践过程

    2023-01-27 17:41:02
  • SpringMVC 参数绑定相关知识总结

    2022-06-05 12:50:54
  • IntelliJ IDEA优化配置的实现

    2023-01-01 03:29:55
  • Springboot启动流程详细分析

    2023-11-29 00:23:10
  • IDEA中多行注释及取消注释的快捷键分享

    2022-02-01 06:31:17
  • java基础之注解示例详解

    2022-05-08 23:47:20
  • asp之家 软件编程 m.aspxhome.com