相关疑难解决方法(0)

当它被抛出并被捕获时,不要停止调试器

在工具/异常中,我设置了调试器在抛出异常时停止的选项.是否被抓住.

如何排除该规则的例外?在我的代码中的某处有一个被捕获的异常,它是程序逻辑的一部分.所以我显然不希望该异常在每次命中时停止调试器.

示例:我想忽略第344行的nullreference异常(捕获).我想停止所有其他例外

.net c# debugging .net-3.5 visual-studio-2008

91
推荐指数
4
解决办法
3万
查看次数

扩展C#Coalesce运算符

在我解释我想做什么之前,如果你看下面的代码,你会明白它应该做什么吗?(更新 - 见下文)

Console.WriteLine(
  Coalesce.UntilNull(getSomeFoo(), f => f.Value) ?? "default value");
Run Code Online (Sandbox Code Playgroud)

C#已经有一个null-coalescing运算符,它在简单对象上运行得很好,但如果你需要访问该对象的一个​​成员则无效.

例如

Console.WriteLine(getSomeString()??"default");
Run Code Online (Sandbox Code Playgroud)

效果很好,但它不会帮助你:

public class Foo
{
  public Foo(string value) { Value=value; }
  public string Value { get; private set; }
}

// this will obviously fail if null was returned
Console.WriteLine(getSomeFoo().Value??"default"); 

// this was the intention
Foo foo=getSomeFoo();
Console.WriteLine(foo!=null?foo.Value:"default");
Run Code Online (Sandbox Code Playgroud)

由于这是我经常遇到的事情,我想到使用扩展方法(旧版本):

public static class Extension
{
  public static TResult Coalesce<T, TResult>(this T obj, Func<T, TResult> func, TResult defaultValue)
  {
    if (obj!=null) return func(obj);
    else return …
Run Code Online (Sandbox Code Playgroud)

c# extension-methods

14
推荐指数
3
解决办法
2431
查看次数