草庐IT

你应该

全部标签

c# - ICommand - 我应该在 Execute 中调用 CanExecute 吗?

鉴于System.Windows.Input.ICommand作为2个主要方法:interfaceICommand{voidExecute(objectparameters);boolCanExecute(objectparameters);...}我希望CanExecute(...)在调用Execute(...)之前在命令支持的框架中被调用。但是,在我的命令实现内部,是否有任何理由在我的Execute(...)实现中添加CanExecute(...)调用?例如:publicvoidExecute(objectparameters){if(!CanExecute(parameters)

c# - 我应该怎么做才能在 .NET 2.0 中使用 Task<T>?

.NET4.0有TPL,它包含很好的Task类来封装异步编程模型。我正在开发一个必须是.NET2.0的应用程序,但我想避免重写Task。有什么建议吗? 最佳答案 我知道你说过你不想重写Task,但实际上你可以使用闭包创建一些相当简单的东西,它的行为有点像Task对象。这是我使用的:publicdelegateRAsyncTask();publicstaticAsyncTaskBeginTask(AsyncTaskfunction){Rretv=default(R);boolcompleted=false;objectsync=new

c# - 是否应该重写所有接口(interface)以返回 Task<Result>?

我有一个简单的界面publicinterfaceSomethingProvider{publicSomethingGetSomething();}为了“使”它异步,我会这样做publicinterfaceSomethingProvider{publicTaskGetSomethingAsync();}虽然接口(interface)现在暗示GetSomething是异步的,但它允许同步执行,如果同步结果足够快,这很好。如果它阻塞,那么我可以将责任归咎于实现程序员对接口(interface)的不良实现。因此,如果后一个接口(interface)由足够快的阻塞实现来实现,则后一个接口(int

c# - 我应该对每个返回任务的方法使用异步/等待吗

这个问题在这里已经有了答案:Whyuseasyncandreturnawait,whenyoucanreturnTaskdirectly?(8个答案)关闭4个月前。假设我有一个C#Controller,它调用某个返回任务的任意函数(例如,因为它执行数据库事务)。我应该始终使用async和await,还是应该只返回任务?示例Controller:publicasyncTaskDoSomething(){returnawaitSomeOtherFunctionThatReturnsATask();}我应该把它改成:publicTaskDoSomething(){returnSomeOthe

c# - 我应该使用哪个,CodeContract 还是 CuttingEdge.Conditions?

我研究了使用条件框架来验证数据而不是if(cond)thrownewSomeException();SomeFramework.MakeSure(cond);最后我的选择是使用CodeContract或CuttingEdge.Conditions框架。我无法决定使用哪个框架。我可以告诉你,我不喜欢“CodeContract”框架的地方是你必须安装额外的msi才能使用它以及你需要选择的选项;不是说它不好,而是感觉不自然。(当然,它仍在MS研究中。)你怎么看? 最佳答案 CodeContracts框架是.NET4的一部分。因此您可以针对

c# - 在 C# 中应该如何使用匿名类型?

我看过很多关于匿名类型如何工作的描述,但我不确定它们到底有什么用。在设计良好的程序中,可以使用匿名类型来解决哪些场景? 最佳答案 匿名类型与系统设计无关,甚至与类级别无关。它们是开发人员在编码时使用的工具。我什至不将匿名类型视为类型本身。我主要将它们用作方法级匿名元组。如果我查询数据库然后操作结果,我宁愿创建一个匿名类型并使用它,而不是声明一个永远不会在我的方法范围之外使用或知道的全新类型。例如:varquery=fromitemindatabase.Items//...selectnew{Id=item.Id,Name=item.

c# - 我应该如何在 ASP.NET MVC 中实现 "Forgot your password"?

我使用的是ASP.NETMVC演示附带的标准SqlMembershipProvider。我有兴趣在我的网站上实现“忘记密码”链接。实现此功能的正确方法是什么?我应该用一个临时密码覆盖密码并将其通过电子邮件发送到他们的注册电子邮件吗? 最佳答案 根据应用程序的性质,忘记密码的最佳做法应按以下顺序允许用户验证secret/问题最多3到5次尝试验证成功后,发送一封电子邮件,其中包含随机生成的密码,有效期为24小时。电子邮件必须包含仅密码,但不能同时包含用户名/密码。当用户使用临时密码登录时,必须强制用户在返回主页之前创建新密码。

c# - 我应该关注 linq 查询中的 "access to modified closure"吗?

我有一个显示错误的linq查询:如果集合的源是一个linq查询,每当我尝试访问我正在迭代的变量时,我都会看到这个错误。我想这个错误只是告诉我变量可能会改变,或者类似的东西? 最佳答案 此错误告诉您查询中对pubConfig的引用将使用pubConfig的值在评估查询时,而不是在您定义它并将其存储在pubConfigSettings中时。实际上,如果“当场”评估查询就没问题。如果您保留它供以后评估,而pubConfig的值在此期间发生变化,您将遇到意想不到的结果。 关于c#-我应该关注li

c# - 我应该使用什么 ORM for .net?

我对.NET比较陌生,并且使用Linq2Sql已经快一年了,但它缺少我现在正在寻找的一些功能。我将开始一个新项目,我想在其中使用具有以下特征的ORM:它必须非常高效,我不想处理访问层来从数据库中保存或检索对象,但它应该允许我在实际将其提交到数据库之前轻松调整任何对象;它还应该允许我轻松地使用不断变化的数据库模式它应该允许我扩展从数据库映射的对象,例如向它们添加虚拟属性(虚拟列到表)它必须(至少几乎)与数据库无关,它应该允许我以透明的方式使用不同的数据库它必须没有那么多配置或必须基于约定才能使其工作它应该允许我使用Linq那么,你知道我可以使用的任何ORM吗?感谢您的帮助。编辑我知道一个

c# - 枚举应该放在单独的文件中还是放在另一个类中?

我目前有一个包含以下枚举的类文件:usingSystem;namespaceHelper{publicenumProcessType{Word=0,Adobe=1,}}或者我应该在使用它的类中包含枚举吗?我注意到Microsoft为DockStyle创建了一个新的类文件:usingSystem;usingSystem.ComponentModel;usingSystem.Drawing.Design;namespaceSystem.Windows.Forms{publicenumDockStyle{None=0,Top=1,Bottom=2,Left=3,Right=4,.Fill=5