Questions tagged «c#-4.0»

C#4.0引入了诸如动态对象,COM互操作性改进,通用协方差和反方差,可选参数和命名参数之类的功能。如果您的问题专门与C#4.0特定功能有关,请使用此标记。如果您的问题并非特定于C#4.0功能,则应使用C#标记。

9
协方差和反方差的真实世界示例
我在理解如何在现实世界中使用协方差和逆方差时遇到了一些麻烦。 到目前为止,我所看到的唯一示例是相同的旧数组示例。 object[] objectArray = new string[] { "string 1", "string 2" }; 如果能看到其他地方使用的示例,那么很高兴能在开发期间使用它。
162 c#  c#-4.0  covariance 

7
C#创建新的T()
您可以看到我正在尝试(但失败)执行以下代码: protected T GetObject() { return new T(); } 任何帮助将不胜感激。 编辑: 上下文如下。我正在使用自定义控制器类,使用标准化方法为所有控制器派生自定义控制器类。因此,在上下文中,我需要为控制器类型的对象创建一个新实例。因此,在撰写本文时,它类似于: public class GenericController<T> : Controller { ... protected T GetObject() { return (T)Activator.CreateInstance(ObjectType); } public ActionResult Create() { var obj = GetObject() return View(obj); } 因此,我认为在这里进行反思最容易。我同意,当然,考虑到问题的最初陈述,标记为正确的最合适答案是使用new()约束的答案。我已经解决了。
159 c#  .net  generics  c#-4.0  .net-4.0 

3
HttpClient可以安全同时使用吗?
在所有示例中,我都能找到的用法HttpClient,它用于一次关机。但是,如果我的客户持续存在这种情况,可以同时发出多个请求怎么办?基本上,client.PostAsync针对的同一实例立即调用2个线程是否安全HttpClient? 我不是在这里真正寻找实验结果。作为一个工作示例,可能只是simply幸(还有一个持久的persistent幸),而失败的示例可能是配置错误。理想情况下,我正在寻找有关HttpClient中并发处理问题的权威答案。

4
为什么协方差和逆方差不支持值类型
IEnumerable<T>是协变的,但它不支持值类型,仅支持引用类型。下面的简单代码已成功编译: IEnumerable<string> strList = new List<string>(); IEnumerable<object> objList = strList; 但是从更改string为int会得到编译错误: IEnumerable<int> intList = new List<int>(); IEnumerable<object> objList = intList; 原因在MSDN中进行了解释: 方差仅适用于引用类型;如果为变量类型参数指定值类型,则该类型参数对于生成的构造类型而言是不变的。 我搜索后发现,提到的一些问题的原因是值类型和引用类型之间的装箱。但这仍不能使我清楚为何拳击是原因? 有人可以给出一个简单而详细的解释,为什么协变量和协变量不支持值类型,以及装箱如何影响值类型?


4
如何使用Linq在每个组中获得第一条记录
考虑以下记录: Id F1 F2 F3 ------------------------------------------------- 1 Nima 1990 10 2 Nima 1990 11 3 Nima 2000 12 4 John 2001 1 5 John 2002 2 6 Sara 2010 4 我想基于该F1字段进行分组并排序,Id并从类似于这些记录的组的第一条记录中获取所有字段: Id F1 F2 F3 ------------------------------------------------- 1 Nima 1990 10 4 John 2001 1 6 Sara 2010 4 如何使用linq执行此操作?

7
WPF中没有Main()?
我是编程方面的初学者,但是我确定通用规则之一是程序以Main()开头。创建WPF项目时看不到一个。是Main()只是在WPF中以不同的方式命名吗?
128 c#  wpf  c#-4.0  main 


5
重定向到另一个控制器中的动作
我有两个控制器,都称为AccountController。其中一个,让我们称它为Controller A被Area调用Admin,而另一个,让我们称其Controller B为不存在Area(我猜这意味着它处于默认状态Area?)。 Controller B有一个action method叫Login。我有一个action methodin Controller A,其中有此行 return RedirectToAction("LogIn", "Account"); 问题是404执行此行时出现错误消息,因为尝试重定向到中不存在action的行Controller A。我想打电话给action method在Controller B。这可能吗?

8
去工作流还是不去工作流?
我负责一个开发人员团队,他们将要开始开发轻型保险理赔系统。该系统涉及许多手动任务和业务工作流,我们正在研究使用Windows Workflow(.NET 4.0)。 业务领域的示例如下:保单持有人致电联系中心提出索赔。此“事件”触发两个子任务,这两个子任务是手动并行执行的,可能需要很长时间才能完成; 检查客户是否存在欺诈行为–一种手动过程,操作员可以通过该过程调用各种信贷公司来检查和评估欺诈客户的潜力。在这里,子任务可以输入许多子状态(检查中,参考检查失败,参考检查通过等) 将项目发送到维修中心–手动过程,将保单持有人提出索赔的项目发送到维修中心进行修复。从此处,子任务可以输入许多子状态(等待修复,进行中,已修复,已发布等)。仅当每个子任务的状态达到预定义的状态(基于业务规则)时,索赔才能继续进行。 从表面上看,Workflow确实是最好的技术选择。但是我在使用WF 4.0时确实有些担心。 技能集–查看平均开发人员技能集,我看不到许多了解或了解工作流程的开发人员。 可维护性–社区内部对WF 4.0项目的支持似乎很少,并且再加上缺乏技能集,引发了人们对可维护性的担忧。 进入障碍–我感到Windows Workflow的学习曲线很陡,而且拿起来并不总是那么容易。 新产品–由于Workflow已针对.NET 4.0进行了完全重写,因此我将该产品视为第一代产品,可能没有必要的稳定性。 声誉–以前的工作流版本不受欢迎,被认为难以开发,并且导致业务采用率低。 所以我的问题是,在这种情况下我们应该使用Windows Workflow(WF)4.0,还是有替代技术(例如,简单状态机等)使用甚至更好的工作流引擎?



6
如何获得当前行号?
这是我想做的一个例子: MessageBox.Show("Error line number " + CurrentLineNumber); 在上方的代码中CurrentLineNumber,应该是这段代码的源代码中的行号。 我怎样才能做到这一点?
117 c#  wpf  c#-4.0  line-numbers 


10
C#运算符是否为“ + =”重载?
我正在尝试为进行运算符重载+=,但我不能。我只能使操作符重载+。 怎么会? 编辑 这不起作用的原因是我有一个Vector类(带有X和Y字段)。考虑以下示例。 vector1 += vector2; 如果我的运算符重载设置为: public static Vector operator +(Vector left, Vector right) { return new Vector(right.x + left.x, right.y + left.y); } 那么结果将不会添加到vector1中,而是通过引用,vector1也将成为全新的Vector。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.