小编Ada*_*oss的帖子

如何舍入小数?

给定十进制'96 .154',我怎样才能确保它总是向上舍入到96.16(而不是正常舍入到2位小数,这将给出96.15).

.net c# rounding

15
推荐指数
3
解决办法
1万
查看次数

在调用.Raise()后获取Elmah中的错误ID

我正在研究MVC3应用程序,我正在使用Elmah来处理我的错误记录.我在我的应用程序中想要的是将Elmah Id带到自定义错误页面,因为我将提供一个链接,允许用户在重复错误(他们认为)的情况下专门报告它.

现在,我在这里阅读了类似的问题,他们建议在Global.asax.cs文件中添加以下代码(或类似代码):

void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)
{
    string sessionId = Session.SessionID;
    Session["ElmahId_" + sessionId] = args.Entry.Id;
}
Run Code Online (Sandbox Code Playgroud)

这就是我目前正在使用的,SessionID允许增加使Session会话存储对象唯一的灵活性.但是,如果在(几乎)同时发生多个错误,这仍可能导致问题.

相反,我决定使用我自己的HandleErrorAttribute,它看起来像这样:

public class ElmahHandleErrorAttribute : FilterAttribute, IExceptionFilter
{
    public void OnException(ExceptionContext filterContext)
    {
        if (filterContext == null)
            throw new ArgumentNullException("filterContext");

        if (filterContext.IsChildAction && (!filterContext.ExceptionHandled
            && filterContext.HttpContext.IsCustomErrorEnabled))
        {
            Elmah.ErrorSignal.FromCurrentContext().Raise(filterContext.Exception);

            // get error id here
            string errorId = null;

            string areaName = (String)filterContext.RouteData.Values["area"];
            string controllerName = (String)filterContext.RouteData.Values["controller"];
            string actionName = (String)filterContext.RouteData.Values["action"];

            var model = new ErrorDetail
            {
                Area = areaName,
                Controller = …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc elmah

8
推荐指数
1
解决办法
3682
查看次数

WinForms 数据绑定与 DataGridView

我想我会发布这个,因为在花了几个小时试图解决之后我一无所获。首先,我充分意识到 WinForms 中的数据绑定并不是最好的。也就是说,它在大多数情况下都有效。

在我的场景中,我有一个绑定源,它是我的表单的主源。用于此绑定源的对象有一些简单的属性和两个绑定列表作为属性。该类和绑定列表的类类型都实现 INotifyPropertyChanged。在我的表单上,我有两个 DataGridView 用于显示绑定列表属性的内容。

这也是通过设计时的数据绑定来完成的。我有两个绑定源,每个绑定源使用主绑定源作为数据源,然后使用各自的绑定列表属性作为数据成员。

到目前为止,我认为这是相当标准的。

为了更新这些列表中的内容,我使用按钮来显示创建新项目的表单,然后使用 BindingList.Add() 将其添加到列表中。

现在在代码中,如果您进行调试,这些项目将位于列表中,但是网格不会更新。但是,如果我向仅使用列表绑定源之一的表单添加一个列表框,则两个网格都会按预期开始刷新。

如果有任何不清楚的地方,我深表歉意,我已尽力对令人困惑的情况进行解释。

任何想法都会有帮助,因为我真的不想使用隐藏列表框。

c# data-binding datagridview winforms

4
推荐指数
1
解决办法
2万
查看次数

C++内存泄漏与unordered_map

我发现在我的应用程序中某处存在内存泄漏,但我一直在缩小范围.我已尝试_CrtDumpMemoryLeaks按照此示例中的说明使用该函数,但它不显示文件名.因此,我一直在尝试通过在各个点放置对此转储函数的调用来找到内存泄漏的第一点(因为根据输出似乎有很多).似乎我很早就在我的构造函数中为对象提供了很多它们.

经过进一步研究,我似乎正在获得定义,std::unordered_map即使只是声明一个局部变量的简单主函数有内存泄漏.

例如,以下代码会产生内存泄漏:

void main()
{
    _CrtDumpMemoryLeaks(); // executing this line, no memeory leaks found

    std::unordered_map<int, int> intMap;

    _CrtDumpMemoryLeaks(); // executing this line, memeory leaks found
}
Run Code Online (Sandbox Code Playgroud)

我在这一点上完全感到困惑,并且觉得追逐这个并不能帮助我找到我最初注意到的内存泄漏.

很感谢任何形式的帮助.

c++ memory-leaks stl

2
推荐指数
2
解决办法
1601
查看次数

是否有相当于 timeGetTime() 的标准库?

我尝试过搜索,但没有真正找到符合我要求或解释得足够清楚的问题的答案。

我正在寻找一个函数或一种实现函数的方法,该函数可以像 timeGetTime() 函数在 Windows 中一样检索刻度数或毫秒数。

我正在寻找一种仅使用标准 C++ 的解决方案,无需额外的库或平台细节(例如 Windows 或 Linux 上的 timeGetTime() 等价物;多平台解决方案)。

我试图让我的代码平台独立于库的较低级别,我只是想知道是否有人可以告诉我/指出如何将类似于 timeGetTime() 的东西组合在一起。

谢谢

更新:我不一定追求高性能和准确性,我只需要毫秒精度来查看自上次检查以来已经过去了多少时间。

c++ stl std

1
推荐指数
1
解决办法
6114
查看次数