Questions tagged «c#»

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

13
在C#.NET中将两个(或多个)列表合并为一个
是否可以使用C#在.NET中将两个或多个列表转换为一个列表? 例如, public static List<Product> GetAllProducts(int categoryId){ .... } . . . var productCollection1 = GetAllProducts(CategoryId1); var productCollection2 = GetAllProducts(CategoryId2); var productCollection3 = GetAllProducts(CategoryId3);
245 c#  .net  list 

28
C ++比C#快多少?
还是现在相反? 据我所知,在某些领域C#被证明比C ++更快,但是我从来没有胆量亲自测试它。 以为你们中的任何人都可以详细解释这些差异,或者将我指向正确的位置以获取有关此信息。

16
有什么理由在C#中使用私有属性吗?
我刚刚意识到C#属性构造也可以与私有访问修饰符一起使用: private string Password { get; set; } 尽管从技术上讲这很有趣,但是我无法想象何时使用它,因为私有字段甚至仪式更少: private string _password; 而且我无法想象何时需要内部获取但不设置或设置但不设置获取私有字段: private string Password { get; } 要么 private string Password { set; } 但是也许有一个带有嵌套/继承类的用例,或者一个get / set可能包含逻辑而不是仅仅返回属性的值,尽管我倾向于使属性严格简单,让显式方法执行任何逻辑,例如GetEncodedPassword()。 是否有人出于某种原因在C#中使用私有属性,还是仅仅是在技术上实际上尚未实际使用的代码构造之一? 附录 不错的答案,仔细阅读它们,我便剔除了私人财产的这些用途: 当需要延迟加载私有字段时 当专用字段需要额外的逻辑或为计算值时 因为私有字段可能很难调试 为了“向自己出示合同” 在内部转换/简化公开属性作为序列化的一部分 包装全局变量以在您的类中使用


12
如何在LINQ中在单个联接中的多个字段上进行联接
我需要执行一个LINQ2DataSet查询,该查询对多个字段进行联接(如 var result = from x in entity join y in entity2 on x.field1 = y.field1 and x.field2 = y.field2 我还找到了合适的解决方案(我可以在where子句中添加额外的约束,但这远非合适的解决方案,或者使用此解决方案,但假定存在等价联接)。 在LINQ中是否可以在单个联接中联接多个字段? 编辑 var result = from x in entity join y in entity2 on new { x.field1, x.field2 } equals new { y.field1, y.field2 } 是我上面假设为均等连接的解决方案。 进一步编辑 为了回答批评我最初的例子是等值连接,我确实承认,我当前的要求是等值连接,并且我已经采用了上面提到的解决方案。 但是,我试图了解我在LINQ中应该/应该采用的可能性和最佳实践。我将需要尽快使用表ID进行日期范围查询联接,并且只是在先发制人,似乎我必须在where子句中添加日期范围。 …
244 c#  linq  join 


30
System.MissingMethodException:方法未找到?
曾经在我的asp.net Webforms应用程序中工作的东西现在抛出此错误: System.MissingMethodException:找不到方法 该DoThis方法在同一类上,并且应该可以工作。 我有这样一个通用处理程序: public class MyHandler: IHttpHandler { public void Processrequest(HttpContext context) { // throws error now System.MissingMethodException: Method not found? this.DoThis(); } public void DoThis() { // } }
244 c#  asp.net  dll  nuget  httphandler 

22
MVVM:教程从头到尾?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我是一位具有5年以上经验的C#/ Windows Forms程序员。我一直在研究使用MVVM(模型-视图-视图模型)设计模式的WPF。我在互联网上搜索了教程。我什至都看过杰森·多林格(Jason Dolinger)很棒的视频。尽管我找到了很多,但我还没有找到能使我自始至终的人。我真正想要的是一个没有任何WPF知识的教程。 您最喜欢WPF-MVVM的哪些教程可以帮助您学习?
243 c#  .net  wpf  mvvm 

18
找到多个与Web Api中的请求匹配的操作
当我尝试使用2个“获取”方法时,我一直收到此错误 找到多个符合请求的操作:webapi 我一直在寻找关于堆栈的其他类似问题,但我不明白。 我有2个不同的名称,并使用“ HttpGet”属性 [HttpGet] public HttpResponseMessage Summary(MyVm vm) { return null; } [HttpGet] public HttpResponseMessage FullDetails() { return null; }


28
使用C#通过Gmail SMTP服务器发送电子邮件
由于某种原因,“ 通过Gmail在.NET中发送电子邮件 ”对我来说都无法接受,也没有其他答案。他们为什么不工作? 更新:我已经尝试了另一个问题中的所有答案(已接受和其他),但没有一个起作用。 我只想知道它是否对其他任何人都有效,否则Google可能已经更改了某些内容(以前发生过)。 当我尝试使用的代码段时SmtpDeliveryMethod.Network,我很快在Send(message)上收到SmtpException。消息是 SMTP服务器需要安全连接,或者客户端未通过身份验证。 服务器响应为: 5.5.1需要身份验证。要了解更多信息,请点击“ <-认真地到此为止。 更新: 这是我很久以前问过的一个问题,可接受的答案是我在不同项目上使用过很多次的代码。 我已经采用了本文和其他EmailSender项目中的一些想法,以在Codeplex创建一个EmailSender项目。它旨在实现可测试性,并支持我最喜欢的SMTP服务,例如GoDaddy和Gmail。
242 c#  .net  email  smtp  gmail 


3
通用字典不区分大小写的访问
我有一个使用托管dll的应用程序。这些dll之一返回通用字典: Dictionary<string, int> MyDictionary; 字典包含大小写键。 另一方面,我得到了潜在键(字符串)的列表,但是我不能保证这种情况。我试图使用键在字典中获取值。但是当然,由于我的案例不匹配,因此以下操作将失败: bool Success = MyDictionary.TryGetValue( MyIndex, out TheValue ); 我希望TryGetValue具有Mcase doc中提到的忽略大小写标志,但这似乎对通用词典无效。 有没有一种方法可以忽略字典大小写而获得该词典的值?是否有比使用适当的StringComparer.OrdinalIgnoreCase参数创建字典的新副本更好的解决方法?
242 c#  generics  dictionary 

6
在WPF应用程序中全局捕获异常?
我们有一个WPF应用程序,其中的某些部分可能会在运行时引发异常。我想全局捕获任何未处理的异常并将它们记录下来,但是否则继续执行程序,就好像什么都没发生一样(有点像VB的那样On Error Resume Next)。 这在C#中可能吗?如果是这样,我到底需要在哪里放置异常处理代码? 目前,我看不到任何可以包裹try/的点,catch并且可以捕获所有可能发生的异常。即使那样,我仍然会因为捕获而留下任何已执行的内容。还是我在这里以错误的方向思考? ETA:因为下面的许多人指出:该应用程序不是用于控制核电厂的。如果它崩溃了,那没什么大不了的,但是大多数与UI相关的随机异常在使用它的上下文中是很麻烦的。有(并且可能仍然有)其中的一些,因为它使用了插件架构,并且可能会被其他人扩展(在这种情况下也是学生;因此,没有经验的开发人员能够编写完全无错误的代码)。 至于捕获的异常:我确实将它们记录到日志文件中,包括完整的堆栈跟踪。这就是整个练习的重点。只是为了反驳那些从字面上把我比作VB的OERN的人。 我知道盲目地忽略某些错误类别是危险的,并且可能会损坏我的应用程序实例。如前所述,该程序对任何人都不是关键任务。在他们的正确思想中,没有人会相信人类文明的生存。它只是一个用于测试某些设计方法的小工具。软件工程。 为了立即使用该应用程序,异常不会发生很多事情: 没有异常处理-错误对话框和应用程序退出。必须重复实验,尽管可能要对另一个主题进行。尚未记录任何错误,这是不幸的。 通用异常处理–良性错误被捕获,没有造成危害。从我们在开发过程中看到的所有错误来看,这应该是常见的情况。忽略这种错误不会立即产生后果;核心数据结构已经过充分测试,因此很容易幸免。 通用异常处理–严重的错误被困,可能在以后崩溃。这可能很少发生。到目前为止,我们从未见过。无论如何,都会记录该错误,并且崩溃是不可避免的。因此,这在概念上与第一种情况相似。除了我们有堆栈跟踪。在大多数情况下,用户甚至不会注意到。 至于程序生成的实验数据:严重的错误在最坏的情况下只会导致不记录任何数据。细微的改变几乎不可能改变实验结果。即使在这种情况下,如果结果看起来可疑,也会记录错误;如果这是一个总体异常值,仍然可以丢弃该数据点。 总结一下:是的,我认为自己至少仍然是部分理智的人,并且我不认为会导致程序运行必定完全有害的全局异常处理例程。如前所述,取决于应用程序,这样的决定可能是有效的。在这种情况下,它被认为是一个有效的决定,而不是胡说八道。对于任何其他应用程序,该决定可能看起来有所不同。但是请不要指责我或从事该项目的其他人可能因为我们无视错误而震惊了整个世界。 旁注:该应用程序只有一个用户。并不是像Windows或Office那样被成千上万的人所使用,因为在这种情况下,首先让用户冒起泡沫的成本已经完全不同了。

11
在String.Split操作中指定空格的最佳方法
我正在基于空白拆分字符串,如下所示: string myStr = "The quick brown fox jumps over the lazy dog"; char[] whitespace = new char[] { ' ', '\t' }; string[] ssizes = myStr.Split(whitespace); 在我想要执行此操作的代码中的任何地方定义char []数组,这很麻烦。有没有更有效的方法不需要创建字符数组(如果在不同位置复制,则容易出错)?
242 c#  string 

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.