草庐IT

time_independent_equals

全部标签

c# - 使用 "greater than or equals"或仅使用 "greater than"

我记得从C天起我们就被鼓励使用i>-1代替i>=0因为性能。这是否仍然适用于C#.NET世界?在当今的编译器中使用其中一种对性能有何影响?即编译器是否足够聪明,可以为您优化这些?(顺便说一句,尝试在StackOverflow的问题字段中输入问题“use>=or>”,看看会发生什么。) 最佳答案 不,没有与比较运算符相关的性能问题。无论如何,任何好的编译器都会优化这种微不足道的东西。我不确定您从哪里得到使用“i>-1”而不是“i>=0”的建议。在x86体系结构上,使用哪一种都没有区别:两种情况都恰好需要两条指令......一条用于比较

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# - Lambda 表达式 : == vs. .Equals()

这是一个纯粹的学术问题,但在lambda表达式中使用==和.Equals有什么区别,哪个更好?代码示例:intcategoryId=-1;listOfCategories.FindAll(o=>o.CategoryId==categoryId);或intcategoryId=-1;listOfCategories.FindAll(o=>o.CategoryId.Equals(categoryId)); 最佳答案 对于引用类型,==旨在传达引用相等性——两个变量是否引用相同对象实例。.Equals()旨在传达值相等性——两个变量引用的

c# - 无法使用实例引用访问成员 'object.Equals(object, object)';用类型名称限定它

当我在C#中使用以下代码时...inttotalValue=0;inttotal=0;totalValue=int.Parse(Session["price"].ToString())*int.Parse(Session["day"].ToString());//ThislinecausestheerrortotalValue+=Session["IsChauffeurUsed"].ToString().Equals("Yes",StringComparer.CurrentCultureIgnoreCase)?80:0;...我收到此错误:Member'object.Equals(ob

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

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

c# - .Equals 上的 C# 泛型方法中的意外行为

为什么Equals方法返回的结果与泛型方法不同?我认为这里有一些我不明白的自动装箱。这是一个重现.net3.5或4.0行为的示例:staticvoidMain(string[]args){TimeZoneInfotzOne=TimeZoneInfo.Local;TimeZoneInfotzTwo=TimeZoneInfo.FindSystemTimeZoneById(tzOne.StandardName);Console.WriteLine(Compare(tzOne,tzTwo));Console.WriteLine(tzOne.Equals(tzTwo));}privatestat

c# - 什么时候 == 会以与 .equals 不同的方式被覆盖?

我了解==和.equals之间的区别。这里还有很多其他问题可以详细解释差异,例如这个:Whatisthedifferencebetween.Equalsand==这个:Bitwiseequality等等。我的问题是:为什么要同时使用它们(我知道一定有一个很好的理由)-它们似乎都在做同样的事情(除非以不同方式覆盖)。什么时候==会以不同于.equals被覆盖的方式重载? 最佳答案 ==在编译时静态绑定(bind),因为运算符始终是静态的。您重载运算符-您无法覆盖它们。Equals(object)以多态方式执行,因为它被覆盖了。就您希望

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# - 字符串比较 : operator==() vs. Equals()

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:C#:Arestring.Equals()and==operatorreallysame?对于字符串比较,哪种方法更好(且安全):strings1="Sarfaraz";strings2="Nawaz";boolresult1=(s1==s2);//approach1boolresult2=s1.Equals(s2);//approach2或者两者在底层是一样的?