草庐IT

c# - 重构 if-else if - else

我有以下代码示例if(object.Time>0&&=500&&=1000){rate=1.00m}else{rate=0m;}我的问题是我可以使用什么设计模式来让它变得更好?编辑:为了澄清一点,您在此处看到的代码是当前存在于策略模式实现中的代码。我们有3种计算类型,其中2种具有3种不同的“比率”,可以根据您在下面看到的时间使用这些计算。我考虑过为每个比率创建一个策略实现,但随后我会移动确定要使用的策略的逻辑,并使它变得一团糟。谢谢! 最佳答案 如果您真的在寻找一种设计模式,我会选择责任链模式。基本上您的“链接”会尝试处理输入。如果

c# - 以管理员身份运行 : requireAdministrator & ClickOnce + emulating system time

我的应用程序使用ClickOnce技术。今天我需要以管理员身份运行它。我修改了来自的list文件到但是VS无法编译项目:Error35ClickOncedoesnotsupporttherequestexecutionlevel'requireAdministrator'.我认为不可能同时使用它们。不是吗?我需要更改系统时间,我可以在应用程序级别进行吗?我可以模拟它吗,所以应用程序。可以做我想做的事。我将时间更改为+2小时,然后再放回去一秒钟。我有一些dll,他们需要时间。 最佳答案 实际上,您不能使用管理员权限运行ClickOnc

c# - 使用 TimePeriod.NET 的 CalendarPeriodCollector 计算 "working time"给出了意外的结果

我正在尝试计算服务水平协议(protocol)的到期日,同时,我还需要从另一个方向回算服务水平协议(protocol)。我一直在努力计算“工作时间”(即在几天内可以工作的时间),并决定使用名为TimePeriodLibrary.NET的第三方库为任务。我需要能够做两件事:开始DateTime和一个TimeSpan,你应该收到DateTime服务水平协议(protocol)到期日期(到期日期)。开始DateTime结束DateTime,你应该收到TimeSpan该服务水平协议(protocol)需要多长时间。所有源代码(测试项目在GitHub上)。我有一个ServiceLevelMana

c# - 等价于 C# 中的 __DATE__、__TIME__ 宏

在C#中是否有等同于__DATE__和__TIME__的东西?基本上我想做的是在C#应用程序中放置一些构建时间戳。Onepossibility我在微软的网站上看到是这样做的:Assemblyassem=Assembly.GetExecutingAssembly();Versionvers=assem.GetName().Version;DateTimebuildDate=newDateTime(2000,1,1).AddDays(vers.Build).AddSeconds(vers.Revision*2);Console.WriteLine(vers.ToString());Cons

c# - Visual Studio : debug multiple projects at the same time?

是否可以在VisualStudio中同时调试多个项目?我知道您可以从解决方案属性中选择多个启动项目,但如何处理断点?如果两个项目使用同一个类(它的两个不同实例),并且我在其中的一个断点处停止,它只会阻止一个程序还是两个程序?我怎么知道哪个可执行文件正在断点?我有点困惑。 最佳答案 是的,这是可能的。您可以在解决方案中设置多个启动项目(右键单击解决方案,转到设置启动项目,选择多个启动项目),并为包含在解决方案(无、开始、不调试就开始)。如果您将多个项目设置为开始,则调试器将在启动时附加到每个项目。当您遇到断点时,您可以使用调试位置工具

c# - 将日期时间削减/舍入为一个整体,即小时/天?

是否有某种数学方法可以将DateTime缩短为精确的小时、天左右?类似于将小数舍入为int。期间.日期如果原始值为2011-01-0113:00:00,则最终值为2011-01-0100:00:00如果Period.Hour如果原始值为2011-03-1113:32:00,则最终值为2011-03-1113:00:00我在想下面这样的事情。这当然可以正常工作,但是range-array无论如何都会在稍后迭代。如果我可以直接在该迭代而不是它自己的迭代上进行计算,那就更好了。但是someType不能放入该迭代中(它取决于someType)。if(someType==Period.Day)r

c# - Owin/IIS 应用程序在 Azure 上的性能不佳

我们测量了一些性能测试,我注意到CPU在内核模式下运行了很多时间。我想知道这是为什么。应用程序:它是经典的Azure云服务Web角色,Owin在IIS下监听,Owin本身只提供缓存在内存中的静态文件(因此应该只有一点性能损失和一切都应该很快)。内容通过awaitstream.CopyToAsync(response.Body)复制到输出流。测试本身在gatling中看起来像这样:valopenLoginSet=exec(http("ROOT").get("/").headers(Headers105Test2.headers_0).resources(http("MED:arrow-d

c# - .NET 网络 API : Set a different Refresh Token Expiration time for different users

我正在使用IdentityServer3为我的角度客户端进行身份验证和生成访问/刷新token。我目前正在为我的Angular客户端设置刷新token在48小时后过期。一些使用我的Angular应用程序的用户需要连续登录100天而无需重新输入他们的凭据,是否可以为特定用户而不是整个客户端设置我的刷新token的到期时间?我的数据库中有100个用户,我希望只有一个特定用户不需要在100天内重新进行身份验证,而其余用户应每48小时进行一次身份验证。类似的东西:if(user=="SuperMan"){AbsoluteRefreshTokenLifetime=TimeSpan.FromDay

c# - 在 C# 中将时间转换为十进制

我需要做的是有两个由用户输入的已定义字符串,stringin="9:35";//amstringout="11:55";//am我需要减去它们,这样才能得到他们签到的总小时数。这应该等于:stringtotal="2:20"然后,我需要将其转换为小数。所以,2:20将是​​stringdecimal="2.33";我不知道该怎么做,任何帮助将不胜感激!P.S:id也希望能够从十进制数计算他们签到的总小时数,所以基本上相反 最佳答案 DateTimedt1=DateTime.Parse("11:55");DateTimedt2=Dat

c# - 在 C# 中计算 future 纪元时间

我能够找到示例代码来获取LinuxEpoch中的当前时间戳(自1970年1月1日午夜以来的秒数),但是我无法找到关于如何计算futureEpoch的示例,比如例如从现在开始10分钟,那么我如何计算LinuxEpoch中的future时间? 最佳答案 当您想知道Windows系统上.Net中的Unix纪元时间时,有一个有趣的转折。对于几乎所有的实际情况,假设当前时间已经过了Unix纪元,你确实可以采用System.TimeSpantimeDifference=DateTime.UTCNow-newDateTime(1970,1,1,0