var vs显式声明

可能重复: 在C#中使用var关键字 嗨,刚搬到工作岗位,我习惯使用var很多。 在我以前的工作中,我们做了大量的TDD和使用resharper。 在这项工作中,他们讨厌第三方工具,这里的开发人员说,一直使用var并不好,而且效率不如显式输入。 前段时间我想的一样,但现在我已经习惯了它,它让我的代码看起来更整洁。 我已经阅读了一些post,但是它是否有效率似乎存在混淆。 我读到使用var生成相同的IL代码。 它应该不那么有效吗? 在其他地方,我读到即使使用var生成相同的IL代码,它也必须找出它是什么类型。 那么“推断”究竟意味着什么呢? 关于性能是否相同的一些澄清将是非常棒的。

使.NET WebBrowser不与IE或其他实例共享cookie

由于C#中的WebBrowser与包括IE在内的所有其他WebBrowsers实例共享cookie,我希望WebBrowser拥有自己的cookie容器,该容器不共享之前在IE或其他实例中创建的任何cookie。 因此,例如,当我创建WebBrowser时,它不应该有任何cookie。 当我运行2个WebBrowsers实例时,它们拥有自己的cookie容器,并且不会彼此共享或冲突cookie。 我怎样才能做到这一点?

根据数据表值在gridview中设置复选框

我有一个gridview控件,带有复选框字段和几个绑定字段。 复选框字段不直接映射到数据库中的字段。 相反,我想从数据库中的字段读取值并“检查”一些复选框。 例如,给出数据库中的以下数据 – > datatable 已处理的名称日期 Y米老鼠11/15/2011 N唐老鸭4/01/2012 Y James Bond 5/02/2011 我希望gridview显示一个复选框,并将框的值设置为UNCHECKED,其中PROCESSED = N,而PROCESSED = Y则具有不可编辑的复选框或根本没有复选框。 已处理的名称日期 [/]米老鼠11/15/2011 []唐老鸭4/01/2012 [/] James Bond 5/02/2011 要填充gridview,将对数据库运行SQL stmt,并将SQL查询的结果存储在数据表中。 在将数据表绑定到gridview之前,我想检查“已处理”字段并根据该值设置复选框。 这是gridview控件(为清晰起见缩短): 这是我到目前为止在代码背后的内容 SqlCommand cmd = new SqlCommand(sql query here); SqlDataAdapter da = new SqlDataAdapter(); DataTable dt = new DataTable(); da.SelectCommand = cmd; // Save results of […]

如何在Visual Studio中读取内存快照

我使用Visual Studio获取应用程序的内存快照。 我有一些关于理解我得到的数据的问题。 在我捕获内存快照后,我过滤掉了我的一个类,比如MyClassPanel。 我只在我的xmal文件中使用MyClassPanel。 为什么MyClassPanel的’Paths to Root’都是’MyClassPanel [RefCount Handle,Count:1]’? (即同名,但带有字符串[最后的RefCount句柄]和不同的Count值)这是什么意思? 在其他类中,我过滤,我看到’Paths to Root’是不同的类名。 我有24个MyClassPanel(来自顶部表中的计数)。 在底部表格的“参考计数”列中,当我添加它们时,它们是24。 总是这样吗? 我认为’Count’和’Reference Count’意味着不同的东西。 在这种情况下,他们加起来。 这有意义吗?

如何在ADO.NET EF 4.1中插入记录?

我正在尝试完成一些非常简单的事情,但我无法使用Entity Framework 4.1找到它。 我想要一个接受一个对象然后执行UPSERT的控制器方法(根据数据库中是否存在记录,插入或更新)。 我使用的是自然键,所以我无法查看我的POCO并告诉它是否是新的。 这就是我这样做的方式,对我来说似乎不对: [HttpPost] public JsonResult SaveMyEntity(MyEntity entity) { MyContainer db = new MyContainer(); // DbContext if (ModelState.IsValid) { var existing = db.MyEntitys.Find(entity.MyKey); if (existing == null) { db.MyEntitys.Add(entity); } else { existing.A = entity.A; existing.B = entity.B; db.Entry(existing).State = EntityState.Modified; } db.SaveChanges(); return Json(new { Result = “Success” }); } } […]

在C#中排序字符串数组

也许这听起来很奇怪,但经过长时间的编程后,我才开始进行数组排序。 一切都如我所料,直到我尝试对包含两个相同字符串的字符串数组进行排序。 让我们来看看: 假设有以下内容: string[] testArray = new string[] { “aa”, “ab”, “ac”, “ad”, “ab”, “af” }; Array.Sort(testArray, StringComparer.InvariantCulture); 在这种情况下,我得到一个空值的数组。 我知道这种行为是因为数组中的值不是不同的值。 对此有更好的解释吗? 如何对非不同的数组进行排序?

类型参数声明必须是标识符而不是类型

有一个基类有一个generics类型的方法,我相信在我的派生中我将返回一个字符串。 这是我的代码: public abstract class Base { public virtual T GetSomething() { return default(T); } } public class Extended : Base { public override string GetSomething() { return string.Empty; //return base.GetSomething(); } } 但是这段代码没有编译。 任何人都可以发现错误吗? 我确信在我的Extended类中我只想返回字符串。 我该如何解决这个问题?

将以前的值与IEnumerable相加

我有一系列数字: var seq = new List { 1, 3, 12, 19, 33 }; 我想将其转换为一个新的序列,其中数字被添加到前面的数字以创建一个新的序列: { 1, 3, 12, 19, 33 } –> {1, 4, 16, 35, 68 } 我想出了以下内容,但我不喜欢状态变量’count’。 我也不喜欢这样一个事实,即我使用值Enumerable而不采取行动。 int count = 1; var summed = values.Select(_ => values.Take(count++).Sum()); 怎么可能呢?

静态方法里面的HttpContext.Current.Response

我在静态类中有以下静态方法。 我的问题是在静态方法中使用HttpContext.Current.Response是否安全? 我想100%确定它是线程安全的,并且只与调用线程相关联。有人知道答案吗? public static void SetCookie(string cookieName, string cookieVal, System.TimeSpan ts) { try { HttpCookie cookie = new HttpCookie(CookiePrefix + cookieName) {Value = cookieVal, Expires = DateTime.Now.Add(ts)}; HttpContext.Current.Response.Cookies.Add(cookie); } catch (Exception) { return; } }

Json.NET原语类型 – 使用Decimal而不是Double

在解析来自JSON的浮点数时,如何使JSON.NET返回小数而不是双精度? (它是一个具有Dictionary的序列化Dictionary )。 我已经尝试编写JsonConverter但是CanConvert方法不会被Double类型调用以尝试转换它。 有关覆盖JsonTextReader的其他代码,但在最新版本的Json.Net中似乎不可能。