Questions tagged «c#»

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

2
List <int>中int的总和范围
我认为这将是微不足道的,但我无法解决该怎么做。我有一个List&lt;int&gt;,我想对一系列数字求和。 说我的清单是: var list = new List&lt;int&gt;() { 1, 2, 3, 4 }; 我如何获得前三个对象的总和?结果是6。我尝试使用Enumerable.Range它,但无法使其正常工作,不确定是否这是最好的解决方法。 不做: int sum = list[0] + list[1] + list[2];
70 c#  list  sum 

9
属性应与其类型具有相同的名称吗?
我有时看过这样写的代码: public class B1 { } public class B2 { private B1 b1; public B1 B1 { get { return b1; } set { b1 = value; } } } 即类B2具有一个名为“ B1”的属性,该属性也属于“ B1”类型。 我的直觉告诉我这不是一个好主意,但是是否有任何技术上的原因为什么您应该避免给与该类同名的属性呢? (以防万一,我正在使用.net 2.0)。

12
您如何找到接口的所有实现?
假设您有一个用C#定义的接口。查找提供接口实现的所有类的最简单方法是什么? 蛮力方法是在Visual Studio中使用“查找引用”,并手动浏览结果以将实现与实现分开,但是对于大型代码库中的接口,该接口在很少的实现中被大量引用,因此可以耗时且容易出错。 在Java中,在代码库上运行javadoc(使用-private选项包括私有类)将为该接口(例如Comparable)生成一个文档页面,其中包括该接口以及所有子接口的所有实现类(尽管它没有包括实现子接口的类,则可以通过深入列出的子接口来相对容易地确定这些类)。我需要的只是C#和Visual Studio的功能。

5
四舍五入到最接近的五
我需要将双精度取整到最接近的5。我找不到使用Math.Round函数执行此操作的方法。我怎样才能做到这一点? 我想要的是: 70 = 70 73.5 = 75 72 = 70 75.9 = 75 69 = 70 等等.. 是否有捷径可寻?
70 c#  double  rounding 

9
访问成员表达式的值
如果我有产品。 var p = new Product { Price = 30 }; 我有以下linq查询。 var q = repo.Products().Where(x=&gt;x.Price == p.Price).ToList() 在一个IQueryable提供程序中,我得到了一个包含常量表达式的p.Price的MemberExpression,但是似乎无法从中获得值“ 30”。 更新 我已经尝试过了,但是似乎没有用。 var memberExpression = (MemberExpression)GetRootConstantExpression(m); var fi = (PropertyInfo)memberExpression.Member; var val = fi.GetValue(((ConstantExpression)memberExpression.Expression).Value, null); 干杯。

2
防止在短时间内收集.NET垃圾
我有一个高性能的应用程序,正在处理大量数据。它正在非常短的时间内接收,分析和丢弃大量信息。这会导致大量对象流失,而我目前正在尝试优化该对象流失,但同时也会导致第二个问题。当垃圾回收启动时,它可能会导致某些长时间的清理工作(很长一段时间,我的意思是10到100毫秒)。99%的时间是可以接受的,但是对于大约1-2分钟长的短暂时间,我需要绝对确保垃圾回收不会造成延迟。我知道这些时间段何时会提前发生,我只需要一种方法来确保在此期间不会发生垃圾收集。该应用程序是使用.NET 4以C#编写的。 我的问题是; 是否可以暂时暂停整个程序的垃圾回收? 是否可以使用System.GC.Collect()强制在我需要免费垃圾收集的窗口之前进行垃圾收集,如果我将多长时间免费使用垃圾收集? 人们对减少总体垃圾收集有何建议? 注意-该系统相当复杂,具有许多不同的组件。我希望避免使用必须在程序的每个类上实现自定义IDisposable接口的方法。

10
找不到Microsoft.Office.Interop Visual Studio
我需要开发一个应用程序,该应用程序具有使用Visual Studio使用C#发送电子邮件的功能。该应用程序将能够使用邮件模板以及许多其他功能,但我遇到了问题。 尝试添加任何Office.Interop引用时都找不到它们,这意味着我无法使用Outlook。Office安装在我的计算机上,但我也尝试通过此链接http://www.microsoft.com/en-us/download/details.aspx?id=3508安装PIA,但它没有做任何更改(当我启动了MSI,它一言不发地停了下来,我不知道这是否是问题的一部分)。 我正在使用Visual Studio 2013 Express,以防可能限制可能的答案。
70 c#  .net 

8
我如何查看HttpWebRequest类发送的原始HTTP请求?
我知道你们都会回答“使用像Fiddler这样的调试代理服务器”,但这不是那么简单。 这是我的情况:我在ASP.NET页面代码隐藏(aspx.cs)中的服务器上运行了一些代码,该代码(除其他外)建立了与 另一台服务器,获取了一些东西,然后对其进行格式化并将其返回到浏览器。 问题是另一台服务器做错了,所以我希望能够将调试标志传递到页面中(通过查询字符串,例如?debug = true),以便它将打印出 完全原始的HTTP请求将其发送到另一台服务器,以便我可以查看到底是什么问题。该代码在多个地方运行,因此我希望能够仅在开发,登台或生产中传递此标志,并且仅查看请求,而不必弄清楚生产服务器是否可以与某个地方存在的某些代理服务器进行通信等 您会认为这样做很容易,对吧?所以我觉得自己很疯狂,但是我看了HttpWebRequest及其父类WebRequest的引用,但没有。没办法 您可能会认为Microsoft会想到这一点。最接近的事情是您可以访问“标头”集合,但是当我尝试它时,它省略了一些非常重要的标头,例如“内容长度”-因此它必须对我“说谎”(我知道它在说谎,因为我知道对于远程服务器正在返回200状态的事实-请求成功,它只是返回错误/不同/错误的数据) 这是要求代码示例: HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.whatever.com"); req.Method = ... whatever ...; ... other setup for the request ... /* At this point we are about to send the request. What does the raw HTTP request look like? */ HttpWebResponse resp = (HttpWebResponse)req.GetResponse();


6
设置WebClient请求的User-Agent标头
为Windows Phone 7的WebClient请求设置User-Agent标头的正确方法是什么?我找到2个选项,但不确定哪个是正确的。考虑一个WebClient对象: WebClient client = new WebClient(); 我看到2个选项: 使用以下方法设置用户代理: client.Headers["User-Agent"] = "myUserAgentString"; 使用WebHeaderCollection设置用户代理: WebHeaderCollection headers = new WebHeaderCollection(); headers[HttpRequestHeader.UserAgent] = "userAgentString"; client.Headers = headers; 您能否建议上述两种方法中的哪一种是正确的?


4
错误:名称“ ConfigurationManager”在当前上下文中不存在
我的Visual C#控制台应用程序(Visual Studio 2005 .NET 2.0 Framework)中包含以下语句 using System.Configuration; 并且我在应用程序中使用以下语句: ConfigurationManager.AppSettings["SomeStringOverHere"]; 我尝试构建该应用程序,但出现错误:当前上下文中不存在名称'ConfigurationManager'。 有什么帮助吗?

9
C#TrimStart与字符串参数
我在寻找String扩展方法,TrimStart()并TrimEnd()接受一个string参数。 我可以自己建一个,但我总是对看看别人如何做感兴趣。 如何才能做到这一点?
70 c# 

5
如何在protobuf-csharp-port和protobuf-net之间进行选择
最近,我不得不寻找最初由Google开发的Protocol Buffers库的C#移植。猜猜是什么,我在这里发现了两个项目,它们都是由两个非常有名的人拥有的:由Jon Skeet编写的protobuf-csharp-port和由Marc Gravell编写的protobuf-net。我的问题很简单:我必须选择哪一个? 我非常喜欢Marc的解决方案,因为在我看来它更接近C#哲学(例如,您可以仅将属性添加到现有类的属性中),并且看起来它可以支持.NET内置类型,例如System.Guid。 我敢肯定他们两个都是很棒的项目,但是您的意见是什么?
70 c#  protobuf-net 

6
如何编写“等待”方法?
我终于寻找到了异步及的await关键字,我有种“搞定”,但所有的例子我见过的异步调用.NET Framework中的方法,例如这一次,它调用HttpClient.GetStringAsync()。 我不太清楚的是这种方法中发生了什么,以及如何编写自己的“ awaitable”方法。它就像将要异步运行的代码包装在Task中并返回该代码一样简单吗?
70 c#  async-await 

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.