Questions tagged «c#»

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

3
在.NET中捕获存储过程的打印输出
是否可以从.NET中的T-SQL存储过程捕获打印输出? 我有很多使用打印作为errorMessaging手段的旧式proc。例如,是否可以从PROC之后访问出题的“单词”? -- The PROC CREATE PROC usp_PrintWord AS PRINT 'word' // Some C# Code to would like to pull out 'word' SqlCommand cmd = new SqlCommand("usp_printWord", TheConnection); cmd.CommandType = CommandType.StoredProcedure; // string ProcPrint = ???

9
WCF对没有“设置”的属性造成窒息。任何解决方法?
由于服务方法,我要传递一些类,并且该类具有仅获取属性: [DataContract] public class ErrorBase { [DataMember] public virtual string Message { get { return ""; } } } 服务端出现异常: System.Runtime.Serialization.InvalidDataContractException:类型'MyNamespace.ErrorBase'中没有为属性'Message'设置的方法。 我必须将此属性作为唯一的获取器,我不能允许用户为其分配值。我可以使用任何解决方法吗?还是我缺少一些其他属性?

4
简单基准测试中怪异的性能提升
昨天,我找到了Christoph Nahr撰写的名为“ .NET Struct Performance”的文章,该文章 对几种语言(C ++,C#,Java,JavaScript)的基准测试了一种添加两个点结构(double元组)的方法。 事实证明,C ++版本执行大约需要1000毫秒(1e9迭代),而C#在同一台机器上的时间不能低于3000毫秒(并且在x64中的表现甚至更差)。 为了自己进行测试,我使用了C#代码(并略微简化以仅调用按值传递参数的方法),并在i7-3610QM机器(单核3.1Ghz Boost),8GB RAM,Win8上运行了它。 1,使用.NET 4.5.2,RELEASE构建32位(由于我的OS是64位,因此x86 WoW64)。这是简化版本: public static class CSharpTest { private const int ITERATIONS = 1000000000; [MethodImpl(MethodImplOptions.AggressiveInlining)] private static Point AddByVal(Point a, Point b) { return new Point(a.X + b.Y, a.Y + b.X); } public static void Main() { Point …

7
大对象堆碎片
我正在使用的C#/。NET应用程序正遭受缓慢的内存泄漏。我已经将CDB与SOS结合使用,试图确定正在发生的事情,但是数据似乎没有任何意义,因此我希望你们中的一个以前可能已经经历过这种情况。 该应用程序在64位框架上运行。它正在不断地计算数据并将其序列化到远程主机,并且相当大地达到了大对象堆(LOH)。但是,我希望大多数LOH对象都是瞬态的:一旦完成计算并将其发送到远程主机,就应该释放内存。但是,我看到的是大量(活动的)对象数组与空闲的内存块交错,例如,从LOH中获取随机段: 0:000> !DumpHeap 000000005b5b1000 000000006351da10 Address MT Size ... 000000005d4f92e0 0000064280c7c970 16147872 000000005e45f880 00000000001661d0 1901752 Free 000000005e62fd38 00000642788d8ba8 1056 <-- 000000005e630158 00000000001661d0 5988848 Free 000000005ebe6348 00000642788d8ba8 1056 000000005ebe6768 00000000001661d0 6481336 Free 000000005f214d20 00000642788d8ba8 1056 000000005f215140 00000000001661d0 7346016 Free 000000005f9168a0 00000642788d8ba8 1056 000000005f916cc0 00000000001661d0 7611648 Free 00000000600591c0 00000642788d8ba8 1056 00000000600595e0 …

1
为什么C#编译器会对这个嵌套的LINQ查询感到生气?
尝试编译以下代码,您会发现编译器需要> 3 GB的RAM(计算机上的所有可用内存)和很长的时间进行编译(实际上,我在10分钟后得到IO异常)。 using System; using System.Linq; public class Test { public static void Main() { Enumerable.Range(0, 1).Sum(a => Enumerable.Range(0, 1).Sum(b => Enumerable.Range(0, 1).Sum(c => Enumerable.Range(0, 1).Sum(d => Enumerable.Range(0, 1).Sum(e => Enumerable.Range(0, 1).Sum(f => Enumerable.Range(0, 1).Count(g => true))))))); } } 有人可以解释这种奇怪的行为吗? CS版本:Microsoft(R)Visual C#编译器版本4.0.30319.17929 操作系统名称:Microsoft Windows 7 Ultimate 操作系统版本:6.1.7601 Service Pack …
97 c#  linq 

10
从字节中获取特定位
我有一个字节,特别是字节数组中的一个字节,该字节数组是通过另一设备发送的UDP传入的。该字节存储设备中8个继电器的开/关状态。 如何获得所述字节中特定位的值?理想情况下,扩展方法看起来最优雅,而返回布尔值对我来说最有意义。 public static bool GetBit(this byte b, int bitNumber) { //black magic goes here }
97 c# 

12
如何为可能为空的对象做ToString?
有没有一种简单的方法可以执行以下操作: String s = myObj == null ? "" : myObj.ToString(); 我知道我可以执行以下操作,但我确实将其视为黑客: String s = "" + myObj; 如果Convert.ToString()为此具有适当的重载,那就太好了。
97 c#  .net  string  object  null 

4
.NET是否可以检查列表a是否包含列表b中的所有项目?
我有以下方法: namespace ListHelper { public class ListHelper<T> { public static bool ContainsAllItems(List<T> a, List<T> b) { return b.TrueForAll(delegate(T t) { return a.Contains(t); }); } } } 其目的是确定一个列表是否包含另一个列表的所有元素。在我看来,类似的东西已经内置到.NET中了,是这样吗?我是否在复制功能? 编辑:抱歉我没有事先声明我在Mono版本2.4.2上使用此代码。
97 c#  .net  list  generics  mono 

4
使用反射在C#中创建没有默认构造函数的类型实例
以下面的类为例: class Sometype { int someValue; public Sometype(int someValue) { this.someValue = someValue; } } 然后,我想使用反射创建此类型的实例: Type t = typeof(Sometype); object o = Activator.CreateInstance(t); 通常这将起作用,但是由于SomeType尚未定义无参数构造函数,因此对的调用Activator.CreateInstance将引发类型异常,MissingMethodException并显示消息“未为此对象定义无参数构造函数。 ”是否还有其他方法可以创建此类型的实例?将无参数的构造函数添加到我的所有类中有点麻烦。

6
在C#中使用位掩码
假设我有以下内容 int susan = 2; //0010 int bob = 4; //0100 int karen = 8; //1000 我将10(8 + 2)作为参数传递给方法,我想对此进行解码以表示susan和karen 我知道10是1010 但是我该怎么做才能看是否检查了特定的位 if (condition_for_karen) // How to quickly check whether effective karen bit is 1 现在我能想到的就是检查我传递的号码是否是 14 // 1110 12 // 1100 10 // 1010 8 // 1000 当我在现实世界中有大量实际位时,这似乎不切实际,有什么更好的方法使用遮罩来检查我是否满足卡伦的条件? 我可以想到先左移然后再右移然后再右移以清除除我感兴趣的位以外的其他位,但这似乎过于复杂。
97 c#  bitmask 


8
换行中的对象摘要
问候 在设置属性/字段/方法等的摘要时,是否可以在其中添加换行符? /// <summary> /// This is line 1 /// This is line 2 /// </summary> public bool TestLine { get; set; } 当我设置它时,它显示为鼠标悬停: bool TestLine This is line 1 This is line 2 但我希望它显示为: bool TestLine This is line 1 This is line 2 我试过使用,\n但不起作用。有什么办法可以做到这一点?
97 c#  newline  summary 

8
在ApiController动作中获取当前用户,而不将userID作为参数传递
我们如何在安全的ApiController动作中获取当前用户,而不将userName或userId作为参数传递? 我们认为这是可用的,因为我们处于安全的行动之内。采取安全措施意味着用户已经通过身份验证,并且该请求具有其承载令牌。假定WebApi已授权用户,则可能有一种内置的方式来访问userId,而不必将其作为操作参数传递。

7
在C#中使用XmlReader读取Xml
我试图尽快读取以下Xml文档,并让其他类管理每个子块的读取。 <ApplicationPool> <Accounts> <Account> <NameOfKin></NameOfKin> <StatementsAvailable> <Statement></Statement> </StatementsAvailable> </Account> </Accounts> </ApplicationPool> 但是,我试图使用XmlReader对象读取每个帐户,然后读取“ StatementsAvailable”。您是否建议使用XmlReader.Read并检查每个元素并进行处理? 我考虑过分离类以正确处理每个节点。因此,有一个AccountBase类,该类接受一个XmlReader实例,该实例读取NameOfKin和有关该帐户的其他几个属性。然后,我想遍历Statements,让另一个类填充有关Statement的内容(然后将其添加到IList)。 到目前为止,我已经通过执行XmlReader.ReadElementString()完成了“每个类”部分,但是我无法锻炼如何告诉指针移至StatementsAvailable元素,并让我对其进行迭代,并让另一个类读取每个属性。 听起来很简单!
97 c#  xml  xmlreader 


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.