Questions tagged «c#»

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


21
从Lambda表达式中检索属性名称
通过lambda表达式传递时,是否有更好的方法来获取属性名称?这是我目前拥有的。 例如。 GetSortingInfo<User>(u => u.UserId); 仅当属性为字符串时,才将其强制转换为memberexpression。因为并非所有属性都是字符串,所以我不得不使用object,但是它将为这些返回unaryexpression。 public static RouteValueDictionary GetInfo<T>(this HtmlHelper html, Expression<Func<T, object>> action) where T : class { var expression = GetMemberInfo(action); string name = expression.Member.Name; return GetInfo(html, name); } private static MemberExpression GetMemberInfo(Expression method) { LambdaExpression lambda = method as LambdaExpression; if (lambda == null) throw new …

7
为什么C#禁止使用通用属性类型?
这会导致编译时异常: public sealed class ValidatesAttribute<T> : Attribute { } [Validates<string>] public static class StringValidation { } 我意识到C#不支持通用属性。但是,经过大量谷歌搜索之后,我似乎找不到原因。 有谁知道为什么泛型类型不能衍生自Attribute?有什么理论吗?

20
向C#数组添加值
这可能是一个非常简单的方法-我从C#开始,需要向数组添加值,例如: int[] terms; for(int runs = 0; runs < 400; runs++) { terms[] = runs; } 对于那些使用PHP的人,这是我正在C#中尝试做的事情: $arr = array(); for ($i = 0; $i < 10; $i++) { $arr[] = $i; }
510 c#  arrays 

17
如何在C#Windows控制台应用程序中更新当前行?
使用C#构建Windows控制台应用程序时,是否可以在不必扩展当前行或转到新行的情况下写入控制台?例如,如果我想显示一个百分比,该百分比表示流程离完成的程度,那么我只想在与游标相同的行上更新值,而不必将每个百分比都放在新行上。 可以使用“标准” C#控制台应用程序完成此操作吗?
507 c#  windows  console 

19
如何找到调用当前方法的方法?
登录C#时,如何得知调用当前方法的方法的名称?我了解的全部System.Reflection.MethodBase.GetCurrentMethod(),但是我想在堆栈跟踪中比这低一级。我已经考虑过解析堆栈跟踪,但是我希望找到一种更清晰的方法,类似于Assembly.GetCallingAssembly()方法。

7
异步/等待-什么时候返回Task vs void?
在什么情况下您想使用 public async Task AsyncMethod(int num) 代替 public async void AsyncMethod(int num) 我能想到的唯一情况是您是否需要任务以跟踪其进度。 另外,在以下方法中,async和await关键字不是必需的吗? public static async void AsyncMethod2(int num) { await Task.Factory.StartNew(() => Thread.Sleep(num)); }

7
XDocument或XmlDocument
我现在正在学习,XmlDocument但是我碰到了什么XDocument,当我尝试搜索它们的区别或好处时,我找不到有用的东西,您能否告诉我为什么您要使用另一个?


16
使用LINQ更新集合中的所有对象
有没有办法使用LINQ执行以下操作? foreach (var c in collection) { c.PropertyToSet = value; } 为了澄清,我想遍历集合中的每个对象,然后更新每个对象的属性。 我的用例是,我在博客文章上有很多评论,我想遍历博客文章上的每个评论,并将博客文章上的日期时间设置为+10小时。我可以用SQL做到这一点,但我想将其保留在业务层中。
498 c#  .net  linq  foreach 

5
如何检测C#中是否存在此字典键?
我正在使用带有联系数据的Exchange Web服务托管API。我有以下代码,可以正常运行,但并不理想: foreach (Contact c in contactList) { string openItemUrl = "https://" + service.Url.Host + "/owa/" + c.WebClientReadFormQueryString; row = table.NewRow(); row["FileAs"] = c.FileAs; row["GivenName"] = c.GivenName; row["Surname"] = c.Surname; row["CompanyName"] = c.CompanyName; row["Link"] = openItemUrl; //home address try { row["HomeStreet"] = c.PhysicalAddresses[PhysicalAddressKey.Home].Street.ToString(); } catch (Exception e) { } try …

18
List <T>或IList <T> [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 7个月前关闭。 谁能向我解释为什么我要在C#中使用IList over List? 相关问题:为什么认为暴露不好List&lt;T&gt;
495 c#  list  generics 

26
在C#中合并字典
Dictionary&lt;T1,T2&gt;在C#中合并2个或更多词典()的最佳方法是什么?(像LINQ这样的3.0功能很好)。 我正在考虑以下方法签名: public static Dictionary&lt;TKey,TValue&gt; Merge&lt;TKey,TValue&gt;(Dictionary&lt;TKey,TValue&gt;[] dictionaries); 要么 public static Dictionary&lt;TKey,TValue&gt; Merge&lt;TKey,TValue&gt;(IEnumerable&lt;Dictionary&lt;TKey,TValue&gt;&gt; dictionaries); 编辑:从Jare​​dPar和Jon Skeet得到了一个很酷的解决方案,但是我正在考虑处理重复键的东西。在发生冲突的情况下,只要保持一致,就可以将哪个值保存到字典中。
493 c#  dictionary  merge 


22
如何在C#中使用可选参数?
注意:在C#还不支持可选参数的时候(即在C#4之前)问这个问题。 我们正在构建从C#类以编程方式生成的Web API。该类具有方法GetFooBar(int a, int b),而API具有采用GetFooBar诸如的查询参数的方法&amp;a=foo &amp;b=bar。 这些类需要支持可选参数,C#语言不支持该参数。最好的方法是什么?

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.