Tag: C#的

在C ++中无符号双精度?

为什么C ++不支持无符号双重语法?

nHibernate,不存在具有给定标识符的行

我有一个映射沿此线。 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Model.Entities" schema="etl" assembly="Model" default-lazy="false"> <class name="Model.Entities.DataField, Model" table="mdm_field"> <id name="FieldId" column="field_id" type="int"> <generator class="native" /> </id> <many-to-one name="KeyField" class="Model.Entities.Key, Model" column="field_id" /> </class> </hibernate-mapping> 现在在数据库中,mdm_field表中的field_id有时在相关的key_field表中不存在一个值,所以基本上破坏了参照完整性。 正因为如此,当我加载实体时,我得到一个错误“没有行与给定的标识符存在”。 如何configuration映射来处理这种情况,这样就不会在这种情况下死亡。

无法在空引用上执行运行时绑定,但它不是空引用

使用:MVC 4,ASP.NET Razor 我得到一个看起来应该不可能的错误。 它告诉我,我使用空引用,国家,但显然它正在设置。 控制器: public ActionResult Index() { Dictionary<int, string> states = new Dictionary<int, string>() { { -1, "a"}, { 0, "b"}, { 1, "c"}, { 2, "d"}, }; //assigning states ViewBag.States = states; foreach (KeyValuePair<int, string> de in ViewBag.States) { Debug.WriteLine(de.Key); } return View(); } 风景: <div class="search-input"> <select> @foreach (KeyValuePair<int, string> […]

如何在不同的CPU内核上生成线程?

比方说,我有一个在C#中的程序,做了一些昂贵的计算,比如将一个WAV文件编码成MP3。 通常我会一次对一个文件进行编码,但是假设我想让程序找出我有多less个CPU核心,并在每个核心上启动一个编码线程。 所以,当我在一个四核CPU上运行这个程序时,程序会发现它是一个四核心的CPU,它指出有四个核心可以工作,然后产生四个线程用于编码,每个线程独立运行中央处理器。 我将如何做到这一点? 如果核心分布在多个物理CPU上,会有什么不同? 如果我有一台带有两个四核CPU的机器,有没有特别的考虑,或者在Windows中,两个模具的八个核心是否相同?

ASP.NET MVC控制器生命周期

我的理解是控制器的构造函数在每个Web请求期间都不会被调用。 假设这是真的,控制器的生命周期是什么? 是应用程序启动时“构造”,然后caching和调用与每个Web请求注入到它的requestcontext? 只是要清楚,我不问如何模仿构造函数行为,我使用OnActionExecuting事件来启动我通常会在构造函数中执行的操作。 另外,我还使用控制器上的构造函数进行单元和系统testing。 谢谢!

自定义assembly属性

我想知道我是否可以定义自定义程序集属性。 现有属性按以下方式定义: [assembly: AssemblyTitle("MyApplication")] [assembly: AssemblyDescription("This application is a sample application.")] [assembly: AssemblyCopyright("Copyright © MyCompany 2009")] 有什么办法可以做到以下几点: [assembly: MyCustomAssemblyAttribute("Hello World! This is a custom attribute.")]

无法从IEnumerable <T>转换为ICollection <T>

我已经定义了以下内容: public ICollection<Item> Items { get; set; } 当我运行这个代码: Items = _item.Get("001"); 我收到以下消息: Error 3 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<Storage.Models.Item>' to 'System.Collections.Generic.ICollection<Storage.Models.Item>'. An explicit conversion exists (are you missing a cast?) 有人能解释我做错了什么吗? 我对Enumerable,Collections和使用ToList()之间的区别很困惑, 增加了信息 后来在我的代码中,我有以下几点: for (var index = 0; index < Items.Count(); index++) 我可以将项目定义为IEnumerable吗?

为什么round()和ceil()不返回一个整数?

有一段时间,我发现自己四舍五入一些数字,我总是不得不把结果投给一个整数: int rounded = (int) floor(value); 为什么所有舍入函数( ceil() , floor() )返回一个浮点数,而不是一个整数? 我觉得这非常不直观,并希望有一些解释!

点(“。”)运算符和箭头(“ – >”)运算符在C和Objective-C中使用

我试图围绕C和Objective-C中的一些使用和语法差异来解决问题。 特别是,我想知道在C和Objective-C中点运算符和箭头运算符的使用方式(以及为什么)有所不同。 这是一个简单的例子。 C代码: // declare a pointer to a Fraction struct Fraction *frac; … // reference an 'instance' variable int n = (*frac).numerator; // these two expressions int n = frac->numerator; // are equivalent Objective-C代码: // declare a pointer to a Fraction Fraction *frac = [[Fraction alloc] init]; … // reference an instance variable […]

什么时候在C ++ 11中的const引用比传递值更好?

我有一些pre-C ++ 11代码,其中我使用const引用传递大量参数,比如vector 。 一个例子如下: int hd(const vector<int>& a) { return a[0]; } 我听说有了新的C ++ 11function,您可以按如下方式通过值传递vector ,而不会影响性能。 int hd(vector<int> a) { return a[0]; } 例如, 这个答案说 即使对于复杂的对象,C ++ 11的移动语义也使得传值和返回值更有吸引力。 上述两个选项是否在性能上是相同的? 如果是这样,什么时候比选项2更好地使用const参考? (即为什么我们仍然需要在C ++ 11中使用const引用)。 我所要求的一个原因是const引用使得模板参数的推导复杂化,并且如果它与const引用在性能方面是相同的,那么仅使用pass-by-value将会容易得多。