Tag: C#的

抛出构造函数的exception

我正在和同事讨论有关从构造函数中抛出exception的问题,我想我想得到一些反馈。 从devise的angular度来看,从构造函数中抛出exception是可以的? 假设我在课堂上包装了一个posix互斥体,它看起来像这样: class Mutex { public: Mutex() { if (pthread_mutex_init(&mutex_, 0) != 0) { throw MutexInitException(); } } ~Mutex() { pthread_mutex_destroy(&mutex_); } void lock() { if (pthread_mutex_lock(&mutex_) != 0) { throw MutexLockException(); } } void unlock() { if (pthread_mutex_unlock(&mutex_) != 0) { throw MutexUnlockException(); } } private: pthread_mutex_t mutex_; }; 我的问题是,这是做这件事的标准方法吗? 因为如果pthread mutex_init调用失败,互斥对象不可用,所以抛出exception可确保不会创build互斥锁。 我应该为Mutex类创build一个成员函数init,然后调用pthread […]

如何使用Assert来validation是否抛出exception?

如何使用Assert(或其他Test类?)来validation是否抛出exception?

Inno Setup for Windows服务?

我有一个.Net Windows服务。 我想创build一个安装程序来安装该Windows服务。 基本上,它必须做到以下几点: 安装包installutil.exe (是否需要?) 运行installutil.exe MyService.exe 启动MyService 另外,我想提供一个运行以下命令的卸载程序: installutil.exe /u MyService.exe 如何使用Inno Setup来做到这些?

如何检测/避免(非托pipe)代码中的内存泄漏?

在非托pipeC / C ++代码中,检测内存泄漏的最佳实践是什么? 和编码准则,以避免? (就好像它很简单;) 过去我们使用了一些愚蠢的方法:每个内存分配调用都有一个计数器增量,在释放时递减。 在程序结束时,计数器值应为零。 我知道这不是一个好方法,有几个捕获。 (例如,如果您释放由平台API调用分配的内存,则您的分配计数将不会与您的释放计数完全匹配。当然,当调用分配内存的API调用时,我们会增加计数器。 我期待着你的经验,build议,也许可以参考一些简化这个工具的工具。

基于C ++ 11范围的循环:按值或引用const获取项目

阅读一些基于范围的循环的例子,他们提出了两种主要的方法1,2,3,4 std::vector<MyClass> vec; for (auto &x : vec) { // x is a reference to an item of vec // We can change vec's items by changing x } 要么 for (auto x : vec) { // Value of x is copied from an item of vec // We can not change vec's items by […]

SqlDataAdapter与SqlDataReader

使用SqlDataAdapter与SqlDataReader从数据库获取数据有什么区别? 我特别关注他们的优点和缺点,以及他们的速度和记忆performance。 谢谢

Visual Studio构build失败:无法将exe文件从obj \ debug复制到bin \ debug

更新: 重现此错误的示例项目可以在Microsoft Connect中find。 我也testing和validation了下面接受的答案给出的解决scheme适用于该示例项目。 如果这个解决scheme不适合你,你可能会遇到不同的问题(属于一个单独的问题)。 这是一个在Stack Overflow和其他地方都提到的问题,但是我发现的这些build议没有一个能够帮助我,所以我只需要尝试提出一个新的问题。 情景:我有一个简单的Windows窗体应用程序(C#,.NET 4.0,Visual Studio 2010)。 它有大部分其他formsinheritance的基本forms,它使用entity framework(和POCO类)进行数据库访问。 没有什么花哨,没有multithreading或任何东西。 问题:一切都很好。 然后,当我即将启动应用程序时,Visual Studio没有build立起来。 我得到警告“无法删除文件”… bin \ Debug \ [ProjectName] .exe'。访问path“… bin \ Debug \ [ProjectName] .exe”被拒绝。 和错误“无法将文件obj \ x86 \ Debug \ [ProjectName] .exe'复制到'bin \ Debug \ [ProjectName] .exe'。进程无法访问文件'bin \ Debug \ [ProjectName] .exe因为它正被另一个进程使用。“ (我在运行重build时遇到了警告和错误,但是在运行Build时只有错误 – 不要认为这是相关的?) 我完全理解这个警告和错误消息是什么意思:Visual Studio显然是在尝试覆盖exe文件,同时出于某种原因locking它。 但是,这并不能帮助我find解决问题的办法…我发现的唯一工作是closuresVisual Studio并重新启动它。 […]

使用LINQsearch树

我有一个从这个类创build的树。 class Node { public string Key { get; } public List<Node> Children { get; } } 我想search所有的孩子和他们的孩子,以获得匹配的条件: node.Key == SomeSpecialKey 我怎样才能实现它?

将数据传递给ASP.NET MVC中的主页面

什么是你的方式传递数据主页(使用ASP.NET MVC),而不会违反MVC规则? 我个人更喜欢编写抽象的控制器(基本控制器)或传递给所有视图的基类。

为什么在entity framework模型定义中为类属性使用“虚拟”?

在以下博客中: http : //weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx 该博客包含以下代码示例: public class Dinner { public int DinnerID { get; set; } public string Title { get; set; } public DateTime EventDate { get; set; } public string Address { get; set; } public string HostedBy { get; set; } public virtual ICollection<RSVP> RSVPs { get; set; } } public class […]