Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。

4
C#8带有多个条件的开关表达式具有相同的结果
如何编写switch表达式以支持返回相同结果的多个案例? 对于版本8之前的C#,可以这样编写一个开关: var switchValue = 3; var resultText = string.Empty; switch (switchValue) { case 1: case 2: case 3: resultText = "one to three"; break; case 4: resultText = "four"; break; case 5: resultText = "five"; break; default: resultText = "unkown"; break; } 当我使用带有表达式语法的C#版本8时,就像这样: var switchValue = 3; var resultText …

2
如何将DbContext实例注入IHostedService?
题 如何将DbContext实例注入(使用标准依赖项注入)IHostedService? 我尝试了什么 目前,我的IHostedService类在构造函数中采用了MainContext(源自DbContext)实例。 当我运行该应用程序时,我得到: 无法使用单例“ Microsoft.Extensions.Hosting.IHostedService”中的作用域服务“ Microsoft.EntityFrameworkCore.DbContextOptions”。 因此,我尝试DbContextOptions通过指定以下方式进行过渡: services.AddDbContext<MainContext>(options => options.UseSqlite("Data Source=development.db"), ServiceLifetime.Transient); 在我Startup班上。 但是,即使根据解决的Github问题,DbContextOptions传递的应该具有与AddDbContext调用中指定的生存期相同的错误,但错误仍然相同。 我不能使数据库上下文成为单例,否则并发调用将产生并发异常(由于数据库上下文不能保证是线程安全的)。


20
找不到路径控制器或未实现IController
我有一个带有语言选择的MVC4项目: 恩 nl fr 德 1个主要部分包括: 关于 通用(用于菜单) 联系 常问问题 家 和3个领域: 管理员 顾客 店 在每个区域中,我至少有一个控制器,例如在Admin中,我具有控制器概述以及相应的视图文件夹概述,其中包含index.aspx页面。 主页和所有主页(关于,常见问题等)都可以使用并且可以访问)。 但是,当我按照以下网址进行操作时:localhost:xxxx / en / admin / overview我收到错误消息: 找不到路径“ / en / admin / overview”的控制器或未实现IController。 即使路由正确(我可以使用Route Debugger看到),错误页面也显示当我要加载主菜单项时抛出了错误: <nav id="site-navigation" class="eightcol"> @Html.Action("MenuItems", "Common") </nav> -由于不相关而删除了代码- 一切似乎都井井有条,但是MVC似乎无法加载位于主要部分的菜单。 因此,问题的根源是:我可以在我的项目的主要部分(家庭,公共,关于等)中授予区域访问控制器的权限(例如Admin)吗?



4
如何获取特定属性的PropertyInfo?
我想获取特定属性的PropertyInfo。我可以使用: foreach(PropertyInfo p in typeof(MyObject).GetProperties()) { if ( p.Name == "MyProperty") { return p } } 但是必须有一种方法可以做类似 typeof(MyProperty) as PropertyInfo 在那儿?还是我坚持进行类型不安全的字符串比较? 干杯。
79 c#  reflection 

7
C#中是否有“空列表”单例?
在C#中,我使用了LINQ和IEnumerable。一切都很好(或至少在大多数情况下是如此)。 但是,在许多情况下,我发现自己需要IEnumerable<X>默认为空。也就是说,我想 for (var x in xs) { ... } 无需空检查即可工作。现在,这是我目前正在执行的操作,具体取决于更大的上下文: var xs = f() ?? new X[0]; // when xs is assigned, sometimes for (var x in xs ?? new X[0]) { ... } // inline, sometimes 现在,虽然上面的内容对我来说非常好-也就是说,如果创建数组对象有任何“额外开销”,我只是不在乎-我想知道: C#/。NET中是否存在“空不变的IEnumerable / IList”单例?(并且即使没有,还有一种“更好”的方式来处理上述情况吗?) Java具有Collections.EMPTY_LIST不可变的单例(即“井井有条”),Collections.emptyList<T>()它可以达到此目的,尽管我不确定类似的概念是否甚至可以在C#中使用,因为泛型的处理方式不同。 谢谢。

7
具有LINQ扩展方法的多个WHERE子句
我有一个看起来像下面的LINQ查询: DateTime today = DateTime.UtcNow; var results = from order in context.Orders where ((order.OrderDate <= today) && (today <= order.OrderDate)) select order; 我正在尝试学习/理解LINQ。在某些情况下,我需要添加两个附加的WHERE子句。为了做到这一点,我正在使用: if (useAdditionalClauses) { results = results.Where(o => o.OrderStatus == OrderStatus.Open) // Now I'm stuck. } 如您所见,我知道如何添加其他WHERE子句。但是如何添加多个?例如,我想添加 WHERE o.OrderStatus == OrderStatus.Open AND o.CustomerID == customerID 到我以前的查询。如何使用扩展方法做到这一点? 谢谢!
79 c#  linq 

8
在C#中检测到ContextSwitchDeadlock错误
我正在运行C#应用程序,并且在运行时出现以下错误: 60秒钟以来,CLR无法从COM上下文0x20e480过渡到COM上下文0x20e5f0。拥有目标上下文/公寓的线程很可能执行非泵送等待或处理非常长时间运行的操作而不泵送Windows消息。这种情况通常会对性能产生负面影响,甚至可能导致应用程序变得无响应或随着时间的推移不断累积内存使用量。为避免此问题,所有单线程单元(STA)线程都应使用泵送等待原语(例如CoWaitForMultipleHandles),并在长时间运行的操作中定期泵送消息。 任何人都可以在这里帮助我解决这个问题吗? 非常感谢。


12
使用嵌套的Foreach语句迭代多维数组
我认为这可能是一个非常简单的问题,但我还无法弄清楚。如果我有一个像这样的二维数组: int[,] array = new int[2,3] { {1, 2, 3}, {4, 5, 6} }; 用嵌套的foreach语句遍历数组的每个维度的最佳方法是什么?

5
在实体框架中排除更新属性
我一直在寻找在MVC中更新模型时将属性标记为不更改的正确方法。 例如,让我们看一下这个小模型: class Model { [Key] public Guid Id {get; set;} public Guid Token {get; set;} //... lots of properties here ... } 然后MVC创建的编辑方法如下所示: [HttpPost] public ActionResult Edit(Model model) { if (ModelState.IsValid) { db.Entry(model).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(model); } 现在,如果我的视图不包含令牌,则通过该编辑将其无效。 我正在寻找这样的东西: db.Entry(model).State = EntityState.Modified; db.Entry(model).Property(x => …

6
int.TryParse实际如何工作
我一直在寻找int.TryParse方法的实现,它实际上是如何工作的,但是我没有找到。我必须知道有关a的信息string,它是否是数字值,但是我现在不想转换它。 所以我只需要bool来自的结果int.TryParse。因此问题是: 是否有任何功能只能提供bool结果, 和 我想知道int.TryParse实际的工作方式(是否在try ... catch内部或通过input的字符进行迭代string)?
79 c# 

7
在C#中,“ T”是什么意思?
我有VB背景,正在为新工作转换为C#。我也想在.NET方面做得更好。我看到人们在发布的样本中经常使用关键字“ T”。在C#中,“ T”是什么意思?例如: public class SomeBase<T> where T : SomeBase<T>, new() 怎么T办?我为什么要使用它?
79 c#  .net  generics 

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.