Tag: C#的

如何处理在C + +构造函数中的失败?

我想在一个类的构造函数中打开一个文件。 开放可能会失败,那么对象build设就无法完成。 如何处理这个失败? 抛出exception? 如果这是可能的,如何处理它在一个非抛出的构造函数?

在Visual Studio 2012中进行Googletesting

我正在尝试开始unit testing。 我下载了gtest的最新版本,并将其提取到A:\gtest作为指定的指示,我打开gtest.sln。 Visual Studio只允许我打开sln,如果我同意更新它。 然后当我尝试build立时,我得到一堆错误: 1>—— Build started: Project: gtest, Configuration: Debug Win32 —— 1> gtest-all.cc 1>a:\gtest\include\gtest\gtest-printers.h(550): error C2977: 'std::tuple' : too many template arguments 1> b:\program files (x86)\microsoft visual studio 2012\vc\include\utility(73) : see declaration of 'std::tuple' 1>a:\gtest\include\gtest\gtest-printers.h(558): error C2977: 'std::tuple' : too many template arguments 1> b:\program files (x86)\microsoft visual studio 2012\vc\include\utility(73) : […]

只写指针types

我正在为embedded式系统编写软件。 我们使用指针访问FPGA器件的寄存器。 一些寄存器是只读的,而另一些是只写的。 只读寄存器在读取时会产生未定义的值。 我想定义一个指针types,它允许编译器检测何时从只写寄存器(又名解引用)读取值。 只能使用C语言语法创build只写指针吗? (我们正在开发使用C的第一个原型,但在第二代移植到C ++。) 如何在C ++中创build高效的只写指针? (请记住,这不是跟踪dynamic内存中的项目,而是访问硬件地址。) 该代码用于安全性和质量最为关注的embedded式系统中。

为什么gcc允许从结构中投机加载?

显示可能会出错的gcc优化和用户代码示例 下面代码片段中的函数“foo”只会加载其中一个结构成员A或B; 至less这是未经优化的代码的意图。 typedef struct { int A; int B; } Pair; int foo(const Pair *P, int c) { int x; if (c) x = P->A; else x = P->B; return c/102 + x; } 以下是gcc -O3给出的内容: mov eax, esi mov edx, -1600085855 test esi, esi mov ecx, DWORD PTR [rdi+4] <– ***load P->B** cmovne […]

在C ++中访问环境variables

我想在我正在编写的C ++程序中访问$HOME环境variables。 如果我用C语言编写代码,我只需要使用getenv()函数,但是我想知道是否有更好的方法来实现它。 这是我迄今为止的代码: std::string get_env_var( std::string const & key ) { char * val; val = getenv( key.c_str() ); std::string retval = ""; if (val != NULL) { retval = val; } return retval; } 我应该使用getenv()来访问C ++中的环境variables吗? 有没有可能遇到的问题,我可以避免一点点的知识?

检查这是否为空

是否有意义,检查这是否为空? 说我有一个方法类; 在那个方法里面,我检查this == NULL ,如果是,返回一个错误码。 如果这是空的,那就意味着该对象被删除。 该方法甚至能够返回任何东西? 更新:我忘了提及可以从多个线程调用该方法,并可能导致该对象被删除,而另一个线程在该方法内。

如何在EF代码中禁用级联删除链接表?

我想要使​​用entity frameworkcode-first禁用级联删除链接表。 例如,如果许多用户有很多angular色,并且我试图删除一个angular色,我希望该删除被阻止, 除非当前没有用户与该angular色关联。 我已经删除了我的OnModelCreating中的级联删除约定: protected override void OnModelCreating(DbModelBuilder modelBuilder) { … modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); 然后我设置了用户angular色链接表: modelBuilder.Entity<User>() .HasMany(usr => usr.Roles) .WithMany(role => role.Users) .Map(m => { m.ToTable("UsersRoles"); m.MapLeftKey("UserId"); m.MapRightKey("RoleId"); }); 然而,当EF创build数据库时,它会为外键关系创build一个删除级联,例如。 ALTER TABLE [dbo].[UsersRoles] WITH CHECK ADD CONSTRAINT [FK_dbo.UsersRoles_dbo.User_UserId] FOREIGN KEY([UserId]) REFERENCES [dbo].[User] ([UserId]) ON DELETE CASCADE GO ALTER TABLE [dbo].[UsersRoles] WITH CHECK ADD CONSTRAINT [FK_dbo.UsersRoles_dbo.Role_RoleId] FOREIGN […]

为什么官方的Qt例子和教程不使用智能指针?

为什么关于Qt库的官方示例和教程从来没有使用智能指针? 我只看到new和delete创build和销毁小部件。 我search了基本原理,但是找不到它,除了出于历史原因或向后兼容性之外,我没有看到它自己。不是每个人都希望程序在widget构造函数失败时终止,并通过try / catch块是丑陋的(即使在less数地方使用)。 家长小部件可能拥有孩子的所有权也只是部分地解释了我的事情,因为您仍然必须在某个级别上使用delete父母。

解决“指定的string不是主题所需的格式”。

我有一个类发送电子邮件(MailMessage),但我得到以下错误: “指定的string不是主题所需的forms。” 有没有一种方便的方法来消毒string,还是必须自己写?

图像与位图类

最近我一直在阅读我的C#(我的团队正在慢慢转向C#),并且无法理解Image类和Bitmap类之间的区别。 现在我知道Bitmapinheritance了Image类,但从我所了解的两者都非常相似。 任何人都可以点亮这个?