C# 这种类型有细微的错误吗?

C# 这种类型有细微的错误吗?,c#,C#,在我们的代码库中发现了这一点,花了一段时间才弄清楚(并且必须使用调试器)。这个类实际上只做一件事,但并没有达到预期的效果 我想我会分享的 EDIT已清除语法错误,抱歉 public class RecordNotFoundException : ApplicationException { readonly string _entityName; public string EntityName { get { return _entityN

在我们的代码库中发现了这一点,花了一段时间才弄清楚(并且必须使用调试器)。这个类实际上只做一件事,但并没有达到预期的效果

我想我会分享的

EDIT已清除语法错误,抱歉

public class RecordNotFoundException : ApplicationException
{       
    readonly string _entityName;
    public string EntityName
    {
        get { return _entityName; }
    }

    readonly string _details;

    public override string Message
    {
        get
        {
           return string.Format("Can't find a record for {0}.", _entityName)
            + _details != null ? string.Format(" Details: {0}", _details) : "";
        }
    }

    public RecordNotFoundException(string entityName)
    {
        _entityName = entityName;
    }

    public RecordNotFoundException(string entityName, string details)
        : this(entityName)
    {
        _details = details;
    }
}

虽然问题很模糊,但这是您的问题,请将
Message
属性更改为:

public override string Message
{
    get
    {
       return string.Format("Can't find a record for {0}.", _entityName)
        + _details != null ? string.Format(" Details: {0}", _details): String.Empty;
    }
}

属性消息永远不会返回以“找不到…”开头的字符串

那么问题是什么?有什么问题/错误?投票结束。这个问题太傻了。您要求我们找出代码的问题所在,并说您必须使用调试器。嗯,我没有,我只是看了看,发现了问题。你把条件运算符的括号写错了。如果你真的想让我们看一个谜语,请把谜语弄对。他还没有发布真正的密码。该代码无法在调试器中运行,甚至无法编译。他将条件运算符的else部分放在对string.Format的第二次调用中。这不是一个真正的问题。我看不到这个网站上的使用,除了操作可能是重复农业。。。Bad tzupI会说这个类至少有两个问题:1)它派生自
ApplicationException
,这是建议不要的,2)它没有实现建议的构造函数以允许序列化异常是的,这是原始发布中的语法错误,对此表示抱歉。它本来应该像你在回答中写的那样。显然,“其他”问题仍然存在。代码将第一种格式的结果添加到_details中,并检查其计算结果是否为null