Questions tagged «c#»

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


10
有什么更有效的方法:Dictionary TryGetValue或ContainsKey + Item?
从MSDN在Dictionary.TryGetValue方法上的条目: 此方法结合了ContainsKey方法和Item属性的功能。 如果未找到键,则value参数将为值类型TValue获取适当的默认值;否则,值为0。例如,对于整数类型,0(零),对于布尔类型,false(假),对于引用类型,null。 如果您的代码经常尝试访问不在字典中的键,请使用TryGetValue方法。使用此方法比捕获Item属性引发的KeyNotFoundException更有效。 此方法接近O(1)操作。 从描述中,尚不清楚它是否比调用ContainsKey然后进行查找更有效或更方便。TryGetValue只是先执行ContainsKey然后再实现Item 的实现,还是实际上比通过一次查找更有效? 换句话说,什么是更有效的(即哪个执行的查询更少): Dictionary<int,int> dict; //...// int ival; if(dict.ContainsKey(ikey)) { ival = dict[ikey]; } else { ival = default(int); } 要么 Dictionary<int,int> dict; //...// int ival; dict.TryGetValue(ikey, out ival); 注意:我不是在寻找基准!


3
具有多个约束的通用方法
我有一个具有两个通用参数的通用方法。我试图编译下面的代码,但是它不起作用。是.NET的限制吗?是否可能对不同的参数具有多个约束? public TResponse Call<TResponse, TRequest>(TRequest request) where TRequest : MyClass, TResponse : MyOtherClass
251 c#  generics  .net-3.5 

10
如何使用WPF将文本包装在标签中?
我有一个TextBox和一个标签。单击按钮后,我执行以下代码: label1.Content = textbox1.Text; 我的问题是,如何启用标签的文本环绕?一行上可能显示太多文本,如果是这种情况,我希望它自动换行为多行。
251 c#  .net  wpf  label  word-wrap 



30
如何绑定到MVVM中的PasswordBox
我遇到了绑定到P的问题asswordBox。似乎有安全隐患,但是我使用的是MVVM模式,因此我希望绕过这一点。我在这里找到了一些有趣的代码(有人使用过此代码还是类似的代码?) http://www.wpftutorial.net/PasswordBox.html 从技术上来说看起来不错,但是我不确定如何找回密码。 我基本上有LoginViewModelfor Username和的属性Password。Username很好,并且可以正常工作TextBox。 我按照上面的说明使用了上面的代码并输入了 <PasswordBox ff:PasswordHelper.Attach="True" ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/> 当我使用PasswordBoxas时TextBox,Binding Path=Password然后LoginViewModel更新了我的属性。 我的代码非常简单,基本上我有一个Commandfor Button。当我按下它时CanLogin被调用,如果返回true则调用Login。 您可以看到我Username在这里检查我的房产,效果很好。 在Login我一起发送到我的服务Username和Password,Username从包含数据我View却Password是Null|Empty private DelegateCommand loginCommand; public string Username { get; set; } public string Password { get; set; } public ICommand LoginCommand { get { if (loginCommand == null) { loginCommand = new DelegateCommand( Login, …
251 c#  wpf  mvvm  wpf-controls  passwords 

7
C#中“返回等待”的目的是什么?
有没有这样的编写方法的场景: public async Task<SomeResult> DoSomethingAsync() { // Some synchronous code might or might not be here... // return await DoAnotherThingAsync(); } 代替这个: public Task<SomeResult> DoSomethingAsync() { // Some synchronous code might or might not be here... // return DoAnotherThingAsync(); } 会有意义吗? return await当您可以直接Task<T>从内部DoAnotherThingAsync()调用返回时,为什么要使用struct? 我return await在很多地方都看到过代码,我想我可能错过了一些东西。但是据我了解,在这种情况下不使用async / await关键字,而直接返回Task的功能是等效的。为什么要增加额外await层的额外开销?
251 c#  .net  .net-4.5  async-await 


10
如何在存储过程中使用DbContext.Database.SqlQuery <TElement>(sql,params)?EF代码优先CTP5
我有一个具有三个参数的存储过程,并且我一直在尝试使用以下命令返回结果: context.Database.SqlQuery&lt;myEntityType&gt;("mySpName", param1, param2, param3); 最初,我尝试使用SqlParameter对象作为参数,但这没有用,并向其SqlException显示以下消息: 过程或函数“ mySpName”需要未提供的参数“ @ param1”。 所以我的问题是,如何在需要参数的存储过程中使用此方法? 谢谢。

11
$在字符串之前是什么意思?
我打算使用逐字字符串,但我错误地键入$而不是@。 但是编译器没有给我任何错误,并且编译成功。 我想知道它是什么,它做什么。我搜索了它,但找不到任何东西。 但是,它不像逐字字符串,因为我不会写: string str = $"text\"; 有谁知道$字符串在C#中代表什么。 string str = $"text"; 我正在使用Visual Studio 2015 CTP。
250 c#  string 

10
为什么在内部类中使用公共方法?
我们的一个项目中有很多代码如下所示: internal static class Extensions { public static string AddFoo(this string s) { if (s == null) { return "Foo"; } return $({s}Foo); } } 除了“以后更容易公开该类型?”以外,还有其他明确的理由吗? 我怀疑这仅在非常奇怪的情况下(在Silverlight中反射)才重要,或者根本不重要。
250 c#  scope  public  internals 

30
您何时使用“ this”关键字?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我很好奇其他人如何使用此关键字。我倾向于在构造函数中使用它,但也可以在整个类中以其他方法使用它。一些例子: 在构造函数中: public Light(Vector v) { this.dir = new Vector(v); } 别处 public void SomeMethod() { Vector vec = new Vector(); double d = (vec * vec) - (this.radius * this.radius); }
249 c#  coding-style  this 

10
HTML.ActionLink方法
假设我有一堂课 public class ItemController:Controller { public ActionResult Login(int id) { return View("Hi", id); } } 在不位于“项目”文件夹ItemController所在的页面上,我想创建该Login方法的链接。那么Html.ActionLink我应该使用哪种方法以及应该传递什么参数呢? 具体来说,我正在寻找方法的替代品 Html.ActionLink(article.Title, new { controller = "Articles", action = "Details", id = article.ArticleID }) 在最近的ASP.NET MVC版本中已停用。

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.