Questions tagged «c#»

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



17
为什么在C#中捕获并抛出异常?
我正在看文章C#-可序列化DTO上的数据传输对象。 本文包括以下代码: public static string SerializeDTO(DTO dto) { try { XmlSerializer xmlSer = new XmlSerializer(dto.GetType()); StringWriter sWriter = new StringWriter(); xmlSer.Serialize(sWriter, dto); return sWriter.ToString(); } catch(Exception ex) { throw ex; } } 本文的其余部分看起来很合理(对菜鸟而言),但是try-catch-throw引发了WtfException ... 这不完全等同于根本不处理异常吗? Ergo: public static string SerializeDTO(DTO dto) { XmlSerializer xmlSer = new XmlSerializer(dto.GetType()); StringWriter sWriter = …

16
获取实现接口的所有类型
使用反射,如何以最少的代码获得使用C#3.0 / .NET 3.5实现接口的所有类型,并最大程度地减少迭代次数? 这是我要重写的内容: foreach (Type t in this.GetType().Assembly.GetTypes()) if (t is IMyInterface) ; //do stuff

17
==和Equals()之间的C#差异
我在Silverlight应用程序中有一个条件,该条件比较2个字符串,由于某种原因,当我使用==它时,它返回false,而.Equals()返回true。 这是代码: if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack")) { // Execute code } if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack") { // Execute code } 为什么会这样呢?
548 c#  .net  equals 


13
如何从C#中的通用方法返回NULL?
我有一个使用此(虚拟)代码的通用方法(是的,我知道IList具有谓词,但是我的代码未使用IList但使用了其他集合,无论如何这与问题无关...) static T FindThing<T>(IList collection, int id) where T : IThing, new() { foreach T thing in collecion { if (thing.Id == id) return thing; } return null; // ERROR: Cannot convert null to type parameter 'T' because it could be a value type. Consider using 'default(T)' instead. } 这给了我一个构建错误 …
546 c#  generics 

7
是否有人有基准(代码和结果)可以比较用Xamarin C#和Java编写的Android应用的性能?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 2年前关闭。 我偶然发现Xamarin声称他们在Android上的Mono实现和他们的C#编译应用比Java代码更快。是否有人在不同的Android平台上对非常相似的Java和C#代码执行实际的基准测试,以验证此类声明,可以发布代码和结果吗? 新增2013年6月18日 由于没有答案,也找不到别人做的基准测试,因此决定自己做测试。不幸的是,我的问题仍然“锁定”,所以我不能将其发布为答案,只能编辑问题。请投票以重新打开这个问题。对于C#,我使用了Xamarin.Android Ver。4.7.09001(测试版)。源代码,我用于测试和编译APK包的所有数据都在GitHub上: Java:https://github.com/gregko/TtsSetup_Java C#:https://github.com/gregko/TtsSetup_C_sharp 如果有人想在其他设备或仿真器上重复我的测试,那么我也很想学习测试结果。 我的测试结果 我将句子提取器类移植到了C#(通过我的@Voice Aloud Reader应用程序),并对10种使用英语,俄语,法语,波兰语和捷克语的HTML文件运行了一些测试。每次运行对所有10个文件执行5次,下面列出了3种不同设备和1个模拟器的总时间。我仅测试了“发布”版本,而未启用调试。 HTC Nexus One Android 2.3.7(API 10)-CyanogenMod ROM Java:总计时间(5次运行):12361 ms,文件读取总计:13304 ms C#:总计总时间(5次运行):17504毫秒,文件读取总计:17956毫秒 三星Galaxy S2 SGH-I777(Android 4.0.4,API 15)-CyanogenMod ROM Java:总计时间(5次运行):8947 ms,文件读取总计:9186 ms C#:总计总时间(5次运行):9884 ms,文件读取总计:10247 ms 三星GT-N7100(Android 4.1.1 JellyBean,API 16)-三星ROM Java:总计时间(5次运行):9742 ms,文件读取总计:10111 ms C#:总计总时间(5次运行):10459 ms,文件读取总计:10696 ms …
544 c#  java  android  xamarin  dot42 


5
好奇的空值销售员自定义隐式转换行为
注意:这似乎已在罗斯林(Roslyn)中修复 在写我对这个问题的答案时,出现了这个问题,它讨论了null结点运算符的结合性。 提醒一下,null-coalescing运算符的想法是该形式的表达式 x ?? y 首先评估x,然后: 如果的值为xnull,y则求值,这是表达式的最终结果 如果值x是非空,y则不评估,的值x是表达的最终结果,转换到编译时间类型的后y如果需要的话 现在通常不需要转换,或者只是从可为null的类型到不可为null的类型的转换-通常类型是相同的,或者只是从(say)int?到int。但是,您可以创建自己的隐式转换运算符,并在必要时使用它们。 对于的简单情况x ?? y,我还没有看到任何奇怪的行为。但是,随着(x ?? y) ?? z我看到一些令人困惑的行为。 这是一个简短但完整的测试程序-结果在注释中: using System; public struct A { public static implicit operator B(A input) { Console.WriteLine("A to B"); return new B(); } public static implicit operator C(A input) { Console.WriteLine("A to C"); return new …

16
声明式和命令式编程之间有什么区别?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我一直在网上寻找声明式和命令式编程的定义,这将为我提供一些启发。但是,在我发现的某些资源中使用的语言令人生畏-例如在Wikipedia上。有没有人有一个真实的例子可以向我展示这个主题(也许是C#)的观点?

27
.NET中的两个字节数组比较
我该如何快速完成? 当然,我可以这样做: static bool ByteArrayCompare(byte[] a1, byte[] a2) { if (a1.Length != a2.Length) return false; for (int i=0; i<a1.Length; i++) if (a1[i]!=a2[i]) return false; return true; } 但是我正在寻找BCL功能或一些经过高度优化的行之有效的方法。 java.util.Arrays.equals((sbyte[])(Array)a1, (sbyte[])(Array)a2); 效果很好,但看起来不适用于x64。 在这里记下我的超快速回答。
541 c#  .net  arrays  performance  j# 

22
LINQ的左外连接
如何在不使用join-on-equals-into子句的情况下在C#LINQ中对对象执行左外部联接?有什么办法可以使用where子句吗?正确的问题:因为内部联接很容易,我有这样的解决方案 List<JoinPair> innerFinal = (from l in lefts from r in rights where l.Key == r.Key select new JoinPair { LeftId = l.Id, RightId = r.Id}) 但是对于左外部联接,我需要一个解决方案。我的是这样的,但没有用 List< JoinPair> leftFinal = (from l in lefts from r in rights select new JoinPair { LeftId = l.Id, RightId = ((l.Key==r.Key) ? …
538 c#  linq  join 


6
计算方法的执行时间
可能重复: 如何测量功能运行了多长时间? 我有一种I / O耗时方法,可将数据从一个位置复制到另一个位置。计算执行时间的最好,最真实的方法是什么?Thread?Timer?Stopwatch?还有其他解决方案吗?我想要最精确,最简短的一个。
533 c#  .net  timer  io  stopwatch 

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.