Tag: C#的

所有对象typesT的sizeof(T)> = alignof(T)总是如此吗?

对于任何对象typesT , sizeof(T)总是至less与alignof(T)一样大? 直观地看起来如此,因为即使你调整对象的alignment方式,如: struct small { char c; }; 通常情况下,它们的“大小”也是向上调整的,以便数组中对象之间的关系在保持alignment的情况下是有意义的(至less在我的testing中,例如: struct alignas(16) small16 { char c; }; 具有16的大小和alignment。

打开枚举(带标志属性)没有声明每个可能的组合?

我如何打开一个具有标志属性设置的枚举(或更精确地用于位操作)? 我希望能够在与所声明的值相匹配的开关中击中所有情况。 问题是,如果我有以下枚举 [Flags()]public enum CheckType { Form = 1, QueryString = 2, TempData = 4, } 我想用这样的开关 switch(theCheckType) { case CheckType.Form: DoSomething(/*Some type of collection is passed */); break; case CheckType.QueryString: DoSomethingElse(/*Some other type of collection is passed */); break; case CheckType.TempData DoWhatever(/*Some different type of collection is passed */); break; } 如果“theCheckType”设置为CheckType.Form | […]

如何获得std :: list中的next(previous)元素而不递增(递减)迭代器?

说我有一个std::list<int> lst和一些std::list<int>::iterator it迭代通过列表。 并依赖于it价值,我想在我的代码中使用it + 1或it – 1 。 是否有一些好的方法来做像next() , prev() (我无法在stl文档中find这样的东西)? 或者我应该每次复制it并增加(减less)副本?

获取当前GMT时间

在C#中是否有方法返回UTC(GMT)时区? 不是基于系统的时间。 基本上我想要得到正确的UTC时间,即使我的系统时间不正确。

在数据库中表示“循环事件”的最佳方式是什么?

我正在尝试在C#中开发一个依赖于日程表和日历的事件应用程序,对此,一个关键的要求是在数据库中表示循环事件。 在数据库中表示重复事件的最佳方式是什么? 更多细节: 在创build活动的同时,我也向特定的用户发送邀请,被邀请者只能在指定的窗口(会议时间)内login到会议,或者在被邀请者试图login的时候,会议的预定开始。

可以从System.ArgumentException派生吗?

如果我有一个方法来检查其参数的有效性,是否可以抛出我自己从System.ArgumentException派生的自定义exception? 我在问,因为ArgumentException本身是从System.SystemException派生的,我看到了一个冲突的指导方针,应用程序是否应该从SystemException派生。 (尽pipe间接地,从ArgumentException派生仍然等同于从SystemException派生。) 我看到很多指导说不从ApplicationException派生,而是从Exception派生。 我很高兴。 我不确定是否也可以从SystemException派生。 如果我不应该从SystemException派生,那么我应该从哪个派生我的"invalid argument"exception类?

即使应用程序closures,NotifyIcon仍保留在托盘中,但在鼠标hover时消失

关于这个疑问还有很多问题。 解决scheme是设置 notifyIcon.icon = null并在FormClosing事件中调用Dispose 。 在我的应用程序中,没有这样的表单,但有事件更新的通知图标。 在创build时,我隐藏了我的表单并使ShowInTaskbar属性为false 。 因此,我不能有“FormClosing”或“FormClosed”事件。 如果这个应用程序得到事件退出,它调用Process.GetCurrentProcess().Kill(); 退出。 我添加了notifyIcon.icon = null以及Dispose之前杀,但仍然图标仍然是任务栏,直到我把鼠标hover在它。 编辑 :如果我认为这种行为是由于调用GetCurrentProcess().Kill() ,是否有任何优雅的方式退出应用程序,将清除所有资源,并从系统托盘中删除图标。

为什么我在“操作”菜单上找不到“debugging托pipe内存”?

为什么我不能在操作菜单上find“debuggingpipe理的内存”,如本MSDN文章中所述: 分析.NET Framework内存问题 ? 我的Visual Studio: 它应该如何看待:

32位和64位代码的DWORD有多大?

在Visual C ++中,一个DWORD只是一个无符号长整数,与机器,平台和SDK相关。 但是,由于DWORD是一个双字(即2 * 16),在64位体系结构上还是32位的DWORD?

跟踪C ++内存分配

我正在寻找一种方法来跟踪C ++程序中的内存分配。 我对内存泄漏不感兴趣,这似乎是大多数工具试图find的东西,而是为应用程序创build内存使用情况configuration文件。 理想的输出可能是一个大的函数名称列表,加上最大分配的字节数,或者更好,随着时间的推移堆的graphics表示。 横轴是时间,纵轴堆空间。 每个函数都会得到它自己的颜色,并根据分配的堆字节来绘制线条。 用于标识分配的对象types的奖励点也是如此。 这个想法是find内存瓶颈/可视化哪些function/线程消耗最多的内存,应瞄准进一步优化。 我简要地看了一下Purify,BoundsChecker和AQTime,但是他们似乎并不是我所追求的。 Valgrind看起来合适,但是,我在Windows上。 Memtrack看上去很有希望,但是需要对源代码进行重大改变。 我的谷歌技能一定是失败了,因为它似乎并不是一个不寻常的要求? 所有需要的信息来创build一个这样的工具应该可以从程序的debugging符号加上运行时API调用 – 不是吗?